9. LE GENERAZIONI DEI CALCOLATORI La individuazione delle “generazioni” dei calcolatori in termini di durata temporale e di tecnologia impiegata non trova d’accordo tutti gli studiosi di storia dell’informatica. La tabella sottostante riporta uno schema molto condiviso: oltre la quarta generazione le proposte sono molto varie e si possono ritenere prive di significato. GENERAZIONE Prima Seconda Terza Quarta PERIODO 1945-1957 1958-1964 1965-1971 1972-1977 TECNOLOGIA Tubi a vuoto Transistori SSI/MSI LSI $/bit/s 10 1 0.1 0.01 Nota 1: Le sigle SSI, MSI, LSI stanno rispettivamente per Small Scale Integration, Medium Scale Integration, Large Scale Integration. Nota 2: il parametro $/bit/s e’ stato introdotto da C.G.Bell e A.Newell nel loro libro “Computer structures: readings and examples” Dal punto di vista architetturale i calcolatori della prima generazione (v. figura) presentano la peculiarita’ di coinvolgere la CPU in tutti i trasferimenti di dati tra memoria ed unita’ periferiche con l’ovvia conseguenza negativa di originare interferenze tra detti trasferimenti ed il funzionamento della CPU. Nella seconda generazione queste interferenze sono notevolmente ridotte attraverso l’introduzione dei cosiddetti processori di I/O (o “canali”), dispositivi in grado di accentrare il controllo di piu’ unita’ periferiche e di coinvolgere la CPU tipicamente solo all’inizio ed alla fine dei trasferimenti (v. figura). Nei calcolatori di questa generazione sono anche quasi sempre presenti le seguenti caratteristiche, alcune delle quali erano gia’ state introdotte in calcolatori della prima generazione: Uso di registri indice Introduzione di hardware specifico per le operazioni in virgola mobile Introduzione di tamburi magnetici e nuclei di ferrite per la memoria primaria Introduzione di istruzioni di diramazione (“branch”) per facilitare il passaggio del controllo dell’esecuzione tra unita’ di programma diverse Introduzione di software di sistema (monitor batch, biblioteche di sottoprogrammi) Sfruttamento sistematico della multiprogrammazione, agevolato dalla presenza dei canali Introduzione di linguaggi ad alto livello e dei relativi compilatori (FORTRAN 1957, COBOL 1959) La tabella che segue riporta un esempio di variazione delle caratteristiche tra calcolatori (“modelli”) di uno stesso costruttore (IBM) nel passaggio dalla prima alla seconda generazione. 0 3 3 3 SECONDA GENERAZIONE 7090 1960 Transistori Nuclei 2.18 32 169 7094 I 1962 Transistori Nuclei 2 32 185 7094 II 1964 Transistori Nuclei 1.4 32 185 Sovrapposizion e fetch Velocita' relativa Numero di registri indice 24 80 140 Sovrapposizion e I/O N. di codici operativi 30 Da 2 a 4 12 Da 4 a 32 12 32 Virgola mobile cablata Dimensione memoria (Kparole) PRIMA GENERAZIONE 701 1952 Tubi Elettrostatica 704 1955 Tubi Nuclei 709 1958 Tubi Nuclei Tempo di ciclo (ms) Tecnologia della memoria Tecnologia della CPU Prima consegna Modello di calcolatore Esempio di variazione delle caratteristiche nel passaggio da prima a seconda generazione per alcuni calcolatori della IBM No Si Si No No Si No No No 1 2.5 4 Si Si,doppia 7 precisione Si,doppia 7 precisione Si No 25 Si Si 30 Si Si 50 Nella terza generazione le principali innovazioni, oltre all’ovvia riduzione di dimensioni, potenza elettrica necessaria e costo, sono le seguenti: Introduzione di componenti a semiconduttore per la realizzazione della memoria primaria Introduzione di tecniche per aumentare la velocita’ di esecuzione dei programmi (pipeline, sistemi multiprocessore) Sviluppo di metodi efficienti per gestire la condivisione di risorse tra i processi e loro inserimento nei sistemi operativi Sviluppo di “famiglie” di calcolatori, caratterizzate da: - presenza di piu’ calcolatori (“modelli”) caratterizzati da velocita’ crescente della CPU, da dimensioni crescenti della memoria primaria, da numero crescente di unita’ di I/O gestibili, da prezzo crescente - repertorio di istruzioni identico o quasi (i calcolatori meno potenti potevano avere un subset delle istruzioni di quelli piu’ potenti) - sistema operativo identico o quasi (anche in questo caso il sistema operativo dei calcolatori meno potenti poteva comprendere solo una parte dei moduli del sistema operativo dei calcolatori piu’ potenti) La tabella che segue riporta le principali caratteristiche della famiglia di calcolatori denominata IBM System/360, annunciata nel 1964. La prima famiglia di calcolatori: IBM System/360 CARATTERISTICA Max dimensione memoria (KB) Velocita' di trasferimento tra CPU e memoria (MB/s) Tempo di ciclo della CPU (ms) 30 MODELLI 50 40 65 75 64 256 256 512 512 0.5 0.8 2 8 16 1 0.625 0.5 0.25 0.2 Velocita' relativa 1 3.5 10 21 50 Max numero di canali Max velocita' per un canale (KB/s) 3 3 4 6 6 250 400 80 1250 1250 Utilizzazione generalizzata della microprogrammazione nella realizzazione dell’unita’ di controllo all’interno della CPU (lo schema di principio della microprogrammazione era stato proposto da Wilkes nel 1951, implementato in alcuni calcolatori della seconda generazione ma utilizzato in modo sistematico solo con i calcolatori della famiglia 360 dell’IBM) Contemporaneamente all’avvento dei calcolatori della terza generazione compaiono i minicalcolatori, calcolatori di piccole dimensioni con parola corta (tipicamente 16 bit) e hardware e software limitati, utilizzati per scopi speciali o da piccoli gruppi di persone (per es. in campo accademico). La quarta generazione non introduce significative novita’ architetturali ma sfrutta le nuove tecnologie per ridurre ulteriormente dimensioni, potenza elettrica richiesta e costo. Fonti: C.G.Bell. A.Newell, “Computer structures: readings and examples”, McGraw-Hill, 1971 J.P.Hayes, “Computer architecture and organization”, McGraw-Hill, 1988