• Non ci sono risultati.

Calcolatori Elettronici

N/A
N/A
Protected

Academic year: 2022

Condividi "Calcolatori Elettronici"

Copied!
36
0
0

Testo completo

(1)

Calcolatori Elettronici

(9 crediti)

(2)

Informazione generali sul corso

• Obiettivo del corso:

– Conoscenza del funzionamento di un calcolatore elettronico

• Verifica

– 2 prove scritte

progettino, prova scritta (5-6 domande) + orale/discussione compito scritto

• Sito del corso

http://www.dis.uniroma1.it/~ciciani/teaching.shtml (in costruzione...)

• Testo e Materiale integrativo

– Trasparenze del corso – Testo: XXXX

– Dispense

(3)

Programma del corso

• Introduzione

• Rappresentazione numerica e codici

• Il livello logico digitale

• Struttura di un calcolatore

• Programmazione di interfacce di periferiche (driver)

• ...

• ....

(4)

Gamma dei sistemi di calcolo

• Sistemi “ embedded ” : incorporati in altri sistemi

– automobili, aerei, telefoni cellulari, PDA ...

• Personal Computer, PC: diverse potenze di calcolo

• Server e Mainframe: caratteristiche molto diverse

– Applicazioni usate da molti utenti,

– webserver, sistemi per la gestione del sistema informativo di una organizzazione (es:banca)

– Supercalcolatore ( es. Previsione del tempo)

• embedded 90%; personal computer: 9-10%; server: 0.5%

• Reti di Workstation : Aumento della potenza di calcolo

mediante il collegamento di PC o WS mediante rete ad alta velocità

(5)

Introduzione

Esempio d’impiego di calcolatori

• Posta elettronica

personal computer Applicazione

Client di posta

Client

Server Server

(6)

Breve Storia dei Sistemi

di Elaborazione

(7)

Preistoria (1600-1900)

• Pascal (1623-1662)

– Pascaline: addizioni e sottrazioni

• Leibniz (1646-1716)

– Anche moltiplicazioni e divisioni

• Charles Babbage (1792-1871)

A) Macchina Differenziale

• Algoritmo fisso

• Output su piastra di rame B) Macchina Analitica

• Prima macchina programmabile

• Memoria: 1000 x 50 cifre decimali

• I/O su schede perforate

• Limite: tecnologia meccanica

(8)

Generazione zero

Macchine elettromeccaniche

• Konrad Zuse (~1930 Germania)

– Macchina a relè

– Distrutta nella guerra

• John Atanasoff (~1940 USA)

– Aritmetica binaria

– Memoria a condensatori

• Howard Aiken (~1940 USA)

– MARK 1: versione a relè della macchina di Babbage (~100 anni dopo!)

– Memoria: 72 x 23 cifre decimali – tempo di ciclo: 6 sec.

– I/O su nastro perforato

(9)

Generazione zero

Tubi termoionici

• COLOSSUS (~1940 GB) Gruppo di Alan Turing, Progetto

segreto

• ENIAC (~1946 USA) J. Mauchley, J. Eckert 18.000 valvole

30 tonnellate

140kw assorbimento Programmabile tramite

6000 interruttori e pannelli cablati

20 registri da 10 cifre

(10)

La Macchina di Von Neumann

IAS (~ 1950, Princeton USA)

– Programma in memoria, Aritmetica binaria, Memoria: 4096 x 40 bit – Formato istruzioni a 20 bit:

OPCODE INDIRIZZO 1

8 2

(11)

I Generazione: Sistemi Commerciali

• Inizialmente il mercato è dominato dalla UNIVAC

• L’IBM entra nel mercato nel 1953, e assume una posizione dominante che manterrà fino agli anni

‘80:

IBM 701 (1953):

• Memoria: 2k word di 36 bit

• 2 istruzioni per word – IBM 704 (1956):

• Memoria: 4k word di 36 bit

• Istruzioni a 36 bit

• Floating-point hardware – IBM 709 (1958)

• Praticamente un 704 potenziato

• Ultima macchina IBM a valvole

(12)

II Generazione (1955-1965)

Tecnologia a transistor

• TXO e TX2 macchine sperimentali costruite al MIT

• Uno dei progettisti del TX2 fonda una propria società la Digital Equipment Corporation (DEC)

• La DEC produce il PDP-1 (1951):

– Memoria: 4k parole di 18 bit – Tempo di ciclo di 4sec

– Prestazioni simili all’IBM 7090 – Prezzo meno di un decimo

– Schermo grafico 512  512 pixel (primi videogiochi) – Comincia la produzione di massa

(13)

II Generazione: Minicomputer

• DEC PDP-8 (1965)

• Successore diretto del PDP-1

• Interconnessione a bus, molto flessibile

• Architettura incentrata sull’I/O

• Possibilità di connettere qualsiasi periferica

• Prodotto in oltre 50.000 esemplari

(14)

II Generazione: Supercomputer

• Macchine molto potenti dedicate al number crunching

• 10 volte più veloci del 7090

• Architettura molto sofisticata

Parallelismo all’interno della CPU

• Nicchia di mercato molto specifica (resta vero anche oggi)

• CDC 6600 (1964)

• Progettista del CDC 6600 è Seymour Cray, poi fondatore

della CRAY

(15)

III Generazione (1965-1980)

Tecnologia LSI e VLSI

Evoluzione dell’architettura HW

– Microprogrammazione – Unità veloci floating-point

– Processori ausiliari dedicati alla gestione dell’I/O

• Evoluzione dei Sistemi Operativi

– Virtualizzazione delle risorse

– Multiprogrammazione: esecuzione concorrente di più programmi – Memoria Virtuale: rimuove le limitazioni dovute alle dimensioni della

memoria fisica

(16)

III Generazione

IBM: Serie IBM System/360 (famiglia elab.)

• Macchine con lo stesso linguaggio

• Range di prestazioni (e prezzo) 1-20

• Completa compatibilità

• Portabilità totale delle applicazioni

• OS comune OS/360 Digital PDP 11

• Architettura a bus (Unibus)

• Prodotto in milioni di esemplari

• Sistema operativo UNIX, indipendente dalla piattaforma

(17)

…. nacque il Personal Computer

• fine anni 70: Apple I, progettato in un garage nel tempo libero, venduto in scatola di montaggio

• 1981 PC IBM con Intel 8088 e MS DOS della minuscola Microsoft

• Informatica diffusa non solo per specialisti

• Duopolio Intel/Microsoft

(18)

La legge di Moore (1965)

La capacità delle memorie DRAM quadruplica ogni tre anni (60% anno)

• Analogo aumento del numero di transistor sul chip

• Aumento della capacità dei chip di memoria

• Aumento della capacità di calcolo delle CPU

(19)

Legge di Moore per le CPU

• Più transistor:

– parallelismo interno

• Maggiore frequenza di funzionamento

• Rapp.prestazioni/costo

– 1951 valvola 1 – 1965 transistor 36

– 1975 circuito integrato 900 – 1995 circuito VLSI 2.400.000 – 2005 circuito ULSI

6.200.000.000

(20)

Legge di Nathan

Il software è come un gas: riempie sempre

completamente qualsiasi contenitore in cui lo si metta

Al calare dei costi e all’aumentare della memoria disponibile, le dimensioni del software sono sempre cresciute in

proporzione

• Il

Circolo Virtuoso

– Costi più bassi e prodotti migliori – Aumento dei volumi di mercato – Fattori di scala nella produzione – Costi più bassi …...

(21)

Calcolatore elettronico oggi…

Sistema elettronico digitale programmabile Elettronico digitale

• Sfrutta componenti elettronici digitali (porte logiche) che operano su grandezze binarie (bit) che possono assumere due soli valori (0 e 1)

Sistema: Parti (o componenti) che interagiscono in modo organico fra loro (architettura di von

Neumann) Programmabile

• Il comportamento del sistema è flessibile e specificato

mediante un programma, ossia un insieme di ordini

(22)

Intel Computer Family

(23)

Grandezze elettriche (1)

• Analogiche

– Il più possibile analoghe a ciò che rappresentano (all’originale)

• Ex: forma corrispondente alla voce

tempo

Pressione aria Tensione elettrica

tempo

(24)

Grandezze elettriche (2)

• Digitali

– Possono assumere solo valori finiti, che rappresentano in modo approssimato una grandezza fisica.

• Binarie

– Grandezze digitali che possono assumere due soli valori, comunemente indicati con 0 ed 1

• La grandezza fisica può essere una tensione, corrente, ampiezza…

tempo

V

2

V

1

Andamento ideale

0-> V1, 1-> V2 oppure

0-> V2, 1-> V1 …

(25)

Grandezze elettriche (3)

• Binarie

– In realtà…

• i valori 0 ed 1 sono rappresentati mediante valori di un intervallo

• Il cambiamento da 0->1, 1->0 non è istantaneo

tempo

3.32.8

0.50.0

Andamento reale

rumore

(26)

Technology State 0 State 1

Relay logic Circuit Open Circuit Closed

CMOS logic 0.0-1.0 volts 2.0-3.0 volts

Transistor transistor logic (TTL) 0.0-0.8 volts 2.0-5.0 volts

Fiber Optics Light off Light on

Dynamic RAM Discharged capacitorCharged capacitor

Programmable ROM Fuse blown Fuse intact

Magnetic disk No flux reversal Flux reversal

Compact disc No pit Pit

Mapping from physical world to binary world

(27)

Vantaggi dei sistemi digitali

• Riproducibilità del risultato

– rumore

• Facilità di progetto

• Flessibilità

• Programmabilità

• Velocità di funzionamento (ns, 10

-9

s)

• Economia

(28)

La nozione di macchina …

Per studiare l’architettura di un calcolatore è

conveniente introdurre la nozione di macchina

• Macchina: entità in grado di eseguire istruzioni appartenenti ad un linguaggio

– Una macchina può essere fisica o virtuale

• Una macchina è composta da un insieme di risorse che sono controllare e gestite dalle istruzioni

– Il significato di ogni istruzione è dato facendo riferimento alle risorse

(29)

Architettura a livelli di un sistema di elaborazione

• Un sistema di elaborazione è

costituito da varie macchine virtuali

• L’architettura di un

sistema di elaborazione è la descrizione delle caratteristiche delle varie macchine virtuali (livelli)

Macchina fisica MF e linguaggio macchina LF Macchina virtuale Mv1 e linguaggio macchina Lv1

Macchina virtuale Mvn e linguaggio macchina Lvn

(30)

Livello applicativo

• E’ il livello usato da chi scrive applicazioni per uno specifico problema (es programmi in java)

Program

in Java Programma eseguibile

int i;

i=i+2;

bytecode

Compilat.

Compilat.

JVM JVM

Macchina ISA

eseguita da

ISA: Instruction Set

Architecture (Macchina di von

Neumann)

(31)

Macchina di von Neumann

Unità di Calcolo Unità di Controllo

Memoria di lavoro Unità di

Ingresso Unità di

Uscita

(32)

Macchina di von Neumann

Unità di Calcolo Unità di Controllo

Memoria di lavoro Unità di

Ingresso Unità di

Uscita

CPU

(33)

Caratteristiche distintive..

• Singola memoria “monodimensionale”

acceduta sequenzialmente

• Memorizzazione sia di dati che del programma

• Il tipo di dato non è memorizzato

• La macchina di von Neumann esegue le

istruzioni del programma (nel linguaggio

macchina)

(34)

Livelli di astrazione

Hardware Software

Livello fisico (transistor..)

Livello

porte logiche Livello

firmware

INSIEME DELLE ISTRUZIONI (linguaggio macchina)

(35)

Il livello firmware (microarchitettura)

Interpreta le istruzioni del linguaggio macchina Le componenti principali di tale livello sono

• Registri (in grado di memorizzare gruppi di bit, ex:

16-32 bit)

• ALU (Unità Aritmetica Logica)

• Data-path (connessioni per il trasferimento dei dati)

Utilizza le porte logiche (livello 1)

(36)

Implementazione

• A una istruzione macchina corrisponde una sequenza di comandi del livello 1 che la

realizzano

Istruzione macchina

1 2 3 k

I

Sequenza

equivalente 

Istruzione L2

Riferimenti

Documenti correlati

Traduttore: genera il programma oggetto mediante la traduzione del programma sorgente da linguaggio simbolico a linguaggio macchina. compilatore: la traduzione è effettuata una

Traduttore: genera il programma oggetto mediante la traduzione del programma sorgente da linguaggio simbolico a linguaggio macchina. compilatore: la traduzione è effettuata una

Traduttore: genera il programma oggetto mediante la traduzione del programma sorgente da linguaggio simbolico a linguaggio macchina. compilatore: la traduzione è effettuata una

L’informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione.. Essa è fornita per scopi meramente didattici e non per essere utilizzata in

Figura 1-18 Andamento fase (in valore assoluto) in un sistema non smorzato

Cognome Nome Teoria Progetto Voto Finale. Borrelli Fulvio 7

Cognome Nome Teoria Progetto Voto Finale. Boscariol Davide INS

La percezione della melodia dipende invece dalla capacità di elaborare le caratteristiche spettrali dei suoni emessi dal parlante, come le fluttuazioni della frequenza