Laboratorio di Informatica

Documenti analoghi
La codifica dell informazione

continua Informatica Hardware Software insieme dei programmi che consentono al calcolatore di operare e di elaborare dati

Introduzione ai sistemi informatici 1

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Architettura dei calcolatori

Capitolo 5 Le infrastrutture HardWare. La memoria centrale

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Architettura dei computer

Informatica. Lo schema di riferimento. Scheda madre 16/11/2007. Introduzione ai sistemi informatici 1

Informatica giuridica

Architettura hardware

Architettura dei calcolatori

LEZIONE 2 Il processore e la memoria centrale

Struttura hw del computer

La memoria principale

Il processore. Istituzionii di Informatica -- Rossano Gaeta

SISTEMI INFORMATIVI AZIENDALI

Dal sistema operativo all' hardware

Architettura del Calcolatore

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

Architettura dei calcolatori I parte Introduzione, CPU

Corso di Informatica

Componenti e connessioni. Capitolo 3

Informatica. Le infrastrutture HardWare. Funzionalità di un calcolatore 21/03/2007. Introduzione ai sistemi informatici 1

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

Lezione 15. L elaboratore Elettronico

Componenti di un processore

Fondamenti di Informatica Architettura del Calcolatore Alessandra Volpato

Fondamenti di informatica: un po di storia

Le infrastrutture Hardware: architettura

Capitolo 2 L informazione e la sua codifica. Informatica e Informazione La codifica dell informazione Analogico vs digitale

Lez. 4 L hardware. Prof. Pasquale De Michele Gruppo 2

Capitolo 1 Introduzione. Il problema. Una transizione

Lezione 1: L hardware

ARCHITETTURA DI UN ELABORATORE

Elementi di informatica

Dal sistema operativo all' hardware

Esame di INFORMATICA Lezione 4

Porte Input/Output (I/O Connectors)

Abilità Informa/che. capitolo 3. Prof. Fabio Calefato a.a Giurisprudenza

Informatica. 80 ore divise in 4 UFC. Docente: Michela Bacchin. Contatti: Tramite Ermes Studenti

Il Processore. Informatica di Base -- R.Gaeta 27

Ingegneria Gestionale della logistica e produzione Prof. A. Palomba - Elementi di Informatica (J-Z) Componenti

Personal Computer: introduzione

Il computer P R O F. L O R E N Z O P A R I S I

Il Processore: l unità di controllo

- Dispensa II - LA CODIFICA DELL INFORMAZIONE E L ARCHITETTURA DEL CALCOLATORE

Architettura del Calcolatore. Danilo Ardagna Politecnico di Milano

Il computer P R O F. L O R E N Z O P A R I S I

Informatica di Base. Ancora su numeri. La struttura dei sistemi informatici.

è è possibile rispondere a queste domande in molti modi, ciascuno relativo a un diverso punto di vista

Informatica e Bioinformatica anno 2013/2014

Corso di Informatica

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

Fondamenti: Informatica, Computer, Hardware e Software

Struttura dell elaboratore elettronico

Informatica: Lez. 1. Andrea Payaro. (European Logistics Association)

Architettura di Von Neumann

Sottosistemi ed Architetture Memorie

o studiare l architettura del calcolatore significa:

Introduzione all'architettura dei Calcolatori

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Organizzata secondo il modello della macchina di von Neumann definita nei tardi anni 40 all Institute for Advanced Study di Princeton.

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

19/11/2013 HARDWARE INTRODUZIONE: COSA E COME COMPRIAMO?

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Le Memorie. Si distinguono per: Supporti sui quali le informazioni vengono fisicamente memorizzate.

Corso Programmazione

Architettura del calcolatore

Codifica binaria dell informazione

Il sistema di elaborazione

CPU. Maurizio Palesi

Fondamenti di informatica: un po di storia

ARCHITETTURA DI UN ELABORATORE

MACCHINA DI TOURING E MODELLO DI VON NEUMANN

Corso di Informatica

LA STRUTTURA DEL COMPUTER

HARDWARE 1.4a: (Processore)

Introduzione alle gerarchie di memoria

ARCHITETTURA DI UN CALCOLATORE ELETTRONICO

Elementi di base del calcolatore

Introduzione al funzionamento di un calcolatore elettronico

Il bus. Bus di sistema: insieme di collegamenti (solitamente in rame) che connette tutti i componenti di un architettura

Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:

Modulo: Elementi di Informatica

Hardware. Sommario. Architettura dei computer

Capitolo 5 Elementi architetturali di base

Hardware. I parte. Sommario

L architettura del calcolatore

Memoria Secondaria o di Massa

Codifica dell Informazione

Le fasi classiche. Informatica di Base -- R.Gaeta 1

LA MEMORIA NEL CALCOLATORE

Tipi di elaboratori Rappresentazione della informazione Codifica della informazione

Il Modello di von Neumann (2) Prevede 3 entità logiche:

Codifica dell Informazione

Architettura di un calcolatore

Corso di Informatica - Lez.1

Transcript:

Corso di Laurea Triennale in Economia Aziendale Università degli Studi della Basilicata Laboratorio di Informatica ERRA UGO ugo.erra@unibas.it

Funzionalità di un calcolatore

Caratteristiche dell architettura Flessibilità nel calcolo architettura non specializzata per un solo tipo di utilizzo ma adatta a svolgere diversi compiti; Modularità della struttura a ogni componente viene demandato lo svolgimento di una funzione specifica del sistema complessivo; Scalabilità dei componenti ognuno dei quali può essere sostituito con uno funzionalmente equivalente ma in grado di fornire prestazioni migliori; Standardizzazione dei componenti per facilitarne la sostituzione in caso di malfunzionamenti; Abbattimento dei costi grazie alla produzione su vasta scala dei componenti; Semplicità di installazione e disponibilità di applicazioni a basso prezzo di vendita

Il calcolatore: modello concettuale 1. Elaborazione 2. Memorizzazione Interconnessione 3. Comunicazione (interfaccia)

Il calcolatore: modello architetturale 1. Elaborazione Unità Centrale di Elaborazione Collegamenti (BUS/Cavi) Interconnessione 2. Memorizzazione Memoria Elettronica 3. Comunicazione (interfaccia) Periferiche Memoria Magnetica

Lo schema di riferimento PC Registri ALU Memoria di massa Video/tastiera (terminale) CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo

Connettori per schede di I/O aggiuntive Zoccolo per la CPU Connettori per la memoria Connettori per dischi fissi

Collegamento a BUS Semplicità Unica linea di connessione costi ridotti di produzione Estendibilità Aggiunta di nuovi dispositivi molto semplice Standard Regole per la comunicazione da parte di dispositivi diversi Lentezza Utilizzo in mutua esclusione del bus Limitata capacità Al crescere del numero di dispositivi collegati Sovraccarico del processore (CPU) Perché opera come master sul controllo del bus

Lo schema di riferimento Scheda madre (motherboard) RAM CPU Bus dati Bus indirizzi Bus di controllo Interfaccia di I/O Interfacce di I/O Interfacce di I/O Schermo Tastiera e mouse Altoparlanti Memoria di massa

John von Neumann Partecipa al progetto ENIAC Due intuizioni fondamentali: memorizzare i programmi in forma digitale nella stessa memoria dei dati per rendere più semplice la programmazione (rispetto all utilizzo di cavi e interruttori) utilizzare l aritmetica binaria invece di quella decimale (due valvole per bit invece di dieci per cifra) Il suo progetto (macchina di von Neumann) è ancora oggi alla base di quasi tutti i calcolatori digitali

Il transistor Inventato ai Bell Labs nel 1948 da John Bardeen, Walter Brattain e William Shockley: Nel giro di 10 anni rivoluziona la ricerca sui calcolatori; Alla fine degli anni 50 i calcolatori a valvole sono già obsoleti. Digital Equipment Corporation (DEC) Fondata nel 1957 da Kenneth Olsen; Nel 1961 realizza il PDP 1, il primo minicalcolatore. Sviluppo della tecnologia d integrazione: Decine (SSI), centinaia (MSI) e migliaia (LSI) di transistor sono integrati sullo stesso pezzo di silicio (chip); Possibilità di realizzare calcolatori più piccoli, più veloci e meno costosi dei loro predecessori. Due famiglie di calcolatori rappresentative: 360 di IBM PDP-11 di DEC

Very Large Scale Integration (VLSI) 105 107 transistor integrati per chip. Passaggio dai minicalcolatori, alle workstation, ai Personal Computer (PC): Usati per applicazioni fortemente interattive (elaborazione testi, fogli elettronici, ); In origine proposti come kit da assemblare, senza software; Due architetture principali: Apple (basato su CPU Motorola e PowerPC) primo PC, progettato da Steve Jobs e Steve Wozniak nel 78, architettura proprietaria! IBM e compatibili (CPU Intel e SW Microsoft Wintel ) realizzato utilizzando componenti off the shelf, architettura di dominio pubblico, quindi replicabile da altri (cloni)!

La codifica dell informazione

Codifica dati e istruzioni Algoritmo Descrizione della soluzione di problema scritta in modo da poter essere eseguita da un esecutore (eventualmente diverso dall autore dell algoritmo) Sequenza di istruzioni che operano su dati. Programma Algoritmo scritto in modo da poter essere eseguito da un calcolatore (esecutore automatico) Per scrivere un programma è necessario rappresentare istruzioni e dati in un formato tale che l esecutore automatico sia capace di memorizzare e manipolare.

Codifica dati e istruzioni Alfabeto dei simboli cifre 0, 1,, 9, separatore decimale (, ), separatore delle migliaia (. ) e segni positivo ( + ) o negativo ( ). Regole di composizione (sintassi), che definiscono le successioni ben formate 1.234,5 è la rappresentazione di un numero; 1,23,45 non lo è. Codice (semantica) 1.234,5 = 1 103 + 2 102 + 3 101 + 4 100 + 5 10 1 1,23,45 =?? Lo stesso alfabeto può essere utilizzato con codici diversi: 123,456 = 1 102 + 2 101 + 3 100 + 4 10 1 + 5 10 2 + 6 10 3, [IT] 123,456 = 1 105 + 2 104 + 3 103 + 4 102 + 5 101 + 6 100, [UK]

Codifica Binaria Alfabeto binario: usiamo dispositivi con solo due stati Problema: assegnare un codice univoco a tutti gli oggetti compresi in un insieme predefinito (e.g. studenti) Quanti oggetti posso codificare con k bit: 1 bit 2 stati (0, 1) 2 oggetti (e.g. Vero/Falso) 2 bit 4 stati (00, 01, 10, 11) 4 oggetti 3 bit 8 stati (000, 001,, 111) 8 oggetti k bit 2k stati 2k oggetti Quanti bit mi servono per codificare N oggetti: N 2k k log 2 N k = log 2 N (intero superiore) Attenzione: ipotesi implicita che i codici abbiano tutti la stessa lunghezza

I giorni della settimana in binario Lunedì Martedì Lunedì Giovedì Martedì Lunedì Lunedì Martedì Domenica Mercoledì Giovedì Mercoledì Sabato Martedì Mercoledì Giovedì Venerdì Mercoledì Giovedì Sabato Domenica Venerdì Sabato Venerdì Domenica Venerdì Sabato Domenica 1 bit - 2 gruppi 2 bit - 4 gruppi 3 bit - 8 gruppi

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ASCII su 7 bit 010 sp! " # $ % & ' ( ) * +, -. / 011 0 1 2 3 4 5 6 7 8 9 : ; < = >? 100 @ A B C D E F G H I J K L M N O 101 P Q R S T U V W X Y Z [ \ ] ^ _ 110 ` a b c d e f g h I j k l m n o 111 p q r s t u v w x Y z { } ~ canc

bit, Byte, KiloByte, MegaByte, bit = solo due stati, 0 oppure 1. Byte = 8 bit, quindi 2 8 = 256 stati KiloByte [KB] = 2 10 Byte = 1024 Byte ~ 10 3 Byte MegaByte [MB] = 2 20 Byte = 1'048'576 Byte ~ 10 6 Byte GigaByte [GB] = 2 30 Byte ~ 10 9 Byte TeraByte [TB] = 2 40 Byte ~ 10 12 Byte PetaByte [PB] = 2 50 Byte ~ 10 15 Byte ExaByte [EB] = 2 60 Byte ~ 10 18 Byte

Lo standard IEC per i prefissi binari L uso dei prefissi SI per le potenze di 2 provoca alcune ambiguità: dischi fissi i produttori impiegano il sistema internazionale quindi un disco da 120 GB contiene 120'000'000'000 byte, gli utenti sono invece ormai abituati a considerare le dimensioni della memoria in termini di potenze di 2 perciò si aspettano che un disco da 120 GB contenga 120 2 30 = 128'849'018'880 byte, la differenza è del 7.37%; floppy disk, dimensione comunemente indicata di 1.44 MB, in realtà la capacità è di 1.44 1000 1024 byte, cioè di 1'474'560 byte, telecomunicazioni da sempre viene utilizzato il sistema internazionale, una velocità di trasmissione dei dati lungo una rete di 100 megabit/secondo corrisponde esattamente a 100 10 6 bit/secondo, alcuni utenti si aspettano una velocità di 100 2 20 bit/secondo.

Lo standard IEC per i prefissi binari Grandezza Nome Simbolo Dimensione SI Diff. % Kilo binario Kibi Ki 2 10 1'024 10 3 2.40% Mega binario Mebi Mi (2 10 ) 2 1'048'576 (10 3 ) 2 4.86% Giga binario Gibi Gi (2 10 ) 3 1'073'741'824 (10 3 ) 3 7.37% Tera binario Tebi Ti (2 10 ) 4 1'099'511'627'776 (10 3 ) 4 9.95% Peta binario Pebi Pi (2 10 ) 5 1'125'899'906'842'624 (10 3 ) 5 12.59% Exa binario Exbi Ei (2 10 ) 6 1'152'921'504'606'846'976 (10 3 ) 6 15.29% Zetta binario Zebi Zi (2 10 ) 7 1'180'591'620'717'411'303'424 (10 3 ) 7 18.06% Yotta binario Yobi Yi (2 10 ) 8 1'208'925'819'614'629'174'706'176 (10 3 ) 8 20.89% Usando questi prefissi si può risolvere l ambiguità capacità di un disco fisso: 120 GB = 111.76 GiB, capacità di un floppy: 1.406 MiB = 1.475 MB

La codifica delle istruzioni Si segue lo schema presentato per i caratteri alfanumerici: quali e quante sono le istruzioni da codificare? qual è la lunghezza delle successioni di bit da utilizzare? qual è la corrispondenza tra istruzioni e successioni di bit? Istruzione Codice ADD 0111 1100 SUB 0111 1101 AND 0111 1110 Istruzioni aritmetico-logiche Istruzione Codice LOAD 1110 1000 STORE 1111 1000 Istruzioni per il trasferimento dati Istruzione Codice IF_EQ 0100 1001 GOTO 0100 1000 RETURN 0100 1100 Istruzioni di controllo

Oltre al codice operativo è necessario far riferimento ai dati necessari per completare l esecuzione dell istruzione, e.g. addizione: è necessario che sia specificato (anche implicitamente) dove leggere i due operandi da sommare e dove scrivere il risultato; il numero dei dati da specificare è variabile, in funzione delle istruzioni. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Codice Operativo Destinazione Sorgente 1 Sorgente 2 Estensione del codice operativo Codice Operativo Destinazione Sorgente 1 Operando (immediato) Codice Operativo Operando (immediato)

CPU Central Processing Unit UNITÀ CENTRALE DI ELABORAZIONE

Calcolatore bus oriented CPU Unità di controllo Dispositivi di I/O Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus

L esecutore Un calcolatore basato sull architettura di Von Neumann esegue un programma sulla base dei seguenti principi: dati e istruzioni sono memorizzati in una memoria unica che permette sia la scrittura che la lettura; i contenuti della memoria sono indirizzati in base alla loro posizione, indipendentemente dal tipo di dato o istruzione contenuto; le istruzioni vengono eseguite in modo sequenziale.

Il linguaggio della CPU Il linguaggio per cui la CPU si comporta da esecutore è detto linguaggio macchina. Le istruzioni scritte in linguaggio macchina sono piuttosto rudimentali: il concetto di tipo di dato è quasi assente, il numero di operandi è limitato (in genere non più di due), il numero di operazioni previste è ridotto. Struttura istruzione codice operativo dest src1 src2 Linguaggio assemblatore add R01 R02 R03 Linguaggio macchina 000000 00000 100000 00001 00010 00011

Ciclo Fetch Decode Execute Fetch Decode Execute

Ciclo Fetch Decode Execute Tempo Istruzione 1 Lettura Decodifica Esecuzione Istruzione 2 Lettura Decodifica Esecuzione Istruzione 3 Lettura Decodifica Esecuzione Ordine di esecuzione delle istruzioni

Le parti di una CPU: Data path Si occupa dell effettiva elaborazione dei dati Comprende dispositivi diversi una o più unità aritmetico-logiche, dette ALU (Arithmetic Logic Unit); Ha il ruolo di svolgere i calcolo matematici alcune unità di memorizzazione temporanea, i registri, memoria ad alta velocità usata per risultati temporanei e informazioni di controllo (il valore massimo memorizzabile in un registro è determinato dalle dimensioni del registro).

Data path R00 R01 R02 R03 X Registri Y Registri ingresso ALU X Istruzione (e.g. add) esito Registro uscita ALU X + Y Y A L U X + Y

Le parti di una CPU: Unità di controllo coordina le operazioni di tutto il processore (anche quelle del data path!); regola il flusso dei dati e indica quali registri debbano essere collegati agli ingressi e all uscita dell ALU; invia all ALU il codice dell operazione da eseguire; riceve indicazioni sull esito dell operazione appena eseguita dall ALU e gestisce opportunamente queste informazioni; comprende alcuni registri di uso specifico Program Counter (PC) qual è l istruzione successiva; Instruction Register (IR) istruzione in corso d esecuzione;

Bus controllo Bus dati Bus indirizzi Unità di controllo Data path ALU Registri CPU Unità di controllo PSW IR PC Memoria Collegamenti per il trasferimento dati Collegamenti per il trasferimento istruzioni Collegamenti di controllo

Una sequenza di istruzioni esempio Ipotizziamo che si debba eseguire l istruzione A A + B + C (assegna alla variabile A la somma del contenuto delle variabili A, B e C); le corrispondenti istruzioni in linguaggio macchina si trovino all indirizzo 789, 790, 791, (come riportato nella tabella sottostante); le variabili A, B e C si trovino rispettivamente nelle celle di memoria 4000 (A), 4004 (B) e 4008 (C). Num Istruzione Commento 789 load R02,4000 trasferisce il contenuto della cella 4000 (A) nel registro R02 790 load R03,4004 trasferisce il contenuto della cella 4004 (B) nel registro R03 791 add R01,R02,R03 somma il contenuto dei registri R02 e R03 e scrive il risultato in R01 792 load R02,4008 trasferisce il contenuto della cella 4008 (C) nel registro R02 793 add R01,R01,R02 somma il contenuto dei registri R01 e R02 e scrive il risultato in R01 794 store R01,4000 trasferisce il contenuto del registro R01 nella cella 4000 (A)

Bus controllo Bus dati Bus indirizzi Dati Istruzioni CPU Data path ALU Registri R05 R04 R03 R02 R01 R00 Unità di controllo 0789 PSW IR PC 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 1492 4004 1918 4008 2006 Memoria Collegamenti per il trasferimento dati Collegamenti per il trasferimento istruzioni Collegamenti di controllo

Bus controllo Bus dati Bus indirizzi Dati Istruzioni CPU Data path ALU Registri R05 R04 R03 R02 R01 R00 Unità di controllo lettura PSW IR PC 0789 0790 +1 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 1492 4004 1918 4008 2006 Memoria

Bus controllo Bus dati Bus indirizzi Dati Istruzioni CPU Data path ALU Registri R05 R04 R03 R02 R01 R00 Unità di controllo lettura 0790 PSW IR load R02,4000 4000 PC 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 1492 4004 1918 4008 2006 Memoria

Bus controllo Bus dati Bus indirizzi Dati Istruzioni CPU Data path ALU Registri R05 R04 R03 R02 1492 R01 R00 Unità di controllo lettura PSW IR load R02,4000 PC 0790 0791 +1 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 1492 4004 1918 4008 2006 Memoria

Bus controllo Bus dati Bus indirizzi Dati Istruzioni CPU Data path ALU Registri R05 R04 R03 R02 1492 R01 R00 Unità di controllo lettura 0791 PSW IR load R03,4004 4004 PC 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 1492 4004 1918 4008 2006 Memoria

Bus controllo Bus dati Bus indirizzi Dati Istruzioni CPU Data path ALU Registri R05 R04 R03 1918 R02 1492 R01 R00 Unità di controllo lettura PSW IR load R03,4004 PC 0791 0792 +1 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 1492 4004 1918 4008 2006 Memoria

Bus controllo Bus dati Bus indirizzi Dati Istruzioni CPU Data path 3410 ALU Registri R05 R04 R03 1918 R02 1492 R01 R00 Unità di controllo esito PSW add IR add R01,R02,R03 PC 0792 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 1492 4004 1918 4008 2006 Memoria

Bus controllo Bus dati Bus indirizzi Dati Istruzioni CPU Data path ALU Registri R05 R04 R03 1918 R02 1492 R01 3410 R00 Unità di controllo lettura PSW IR add R01,R02,R03 PC 0792 0793 +1 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 1492 4004 1918 4008 2006 Memoria

Bus controllo Bus dati Bus indirizzi Dati Istruzioni CPU Data path ALU Registri R05 R04 R03 1918 R02 1492 R01 3410 R00 Unità di controllo lettura 0793 PSW IR load R02,4008 4008 PC 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 1492 4004 1918 4008 2006 2006 Memoria

Bus controllo Bus dati Bus indirizzi Dati Istruzioni CPU Data path ALU Registri R05 R04 R03 1918 R02 2006 R01 3410 R00 Unità di controllo lettura PSW IR load R02,4008 PC 0793 0794 +1 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 1492 4004 1918 4008 2006 Memoria

Bus controllo Bus dati Bus indirizzi Dati Istruzioni CPU Data path 5416 ALU Registri R05 R04 R03 1918 R02 2006 R01 3410 R00 Unità di controllo esito PSW add IR add R01,R01,R02 PC 0794 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 1492 4004 1918 4008 2006 Memoria

Bus controllo Bus dati Bus indirizzi Dati Istruzioni CPU Data path ALU Registri R05 R04 R03 1918 R02 2006 R01 5416 R00 Unità di controllo lettura PSW IR add R01,R01,R02 PC 0794 0795 +1 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 1492 4004 1918 4008 2006 Memoria

Bus controllo Bus dati Bus indirizzi Dati Istruzioni CPU Data path ALU Registri R05 R04 R03 1918 R02 2006 R01 5416 R00 Unità di controllo scrittura 0795 PSW IR store R01,4000 4000 PC 0789 load R02,4000 0790 load R03,4004 0791 add R01,R02,R03 0792 load R02,4008 0793 add R01,R01,R02 0794 store R01,4000 4000 1492 4004 1918 4008 2006 Memoria

Evoluzione delle CPU Intel Famiglia di CPU Anno Frequenza Registri/bus dati Frequenza Numero di CPU (MHz) (bit) bus (MT/s) transistor 8086 1978 4.77 12 8/16 4 12 29 000 80286 1982 8 16 16/16 8 16 134 000 80386 1986 16 33 32/32 16 33 275 000 80486 1989 16 50 32/32 16 33 1 200 000 Pentium 1993 60 200 32/64 60 66 3 100 000 Pentium II 1997 233 400 32/64 66 100 7 500 000 Pentium III 1999 450 1133 32/64 100 133 24 000 000 (Willamette) 2000 1300 2000 32/64 400 533 42 000 000 Pentium 4 (Northwood) 2002 2000 3400 32/64 400 533 55 000 000 (Prescott) 2004 2800 3800 32/64 533 800 125 000 000 Pentium D (Smithfield) 2005 2800 3200 64/64 533 800 230 000 000 (Presler) 2006 2800 3600 64/64 800 1066 376 000 000 Core 2 Duo (Conroe) 2006 2400 3200 64/64 1066 291 000 000 (Merom) 2006 1666 2333 64/64 667 291 000 000

Legge di Moore e progresso Il progresso della tecnologia provoca un aumento del numero di transistor per cm 2 e quindi per chip. Un maggior numero di transistor per chip permette di produrre prodotti migliori (sia in termini di prestazioni che di funzionalità) a prezzi ridotti. I prezzi bassi stimolano la nascita di nuove applicazioni (e.g. non si fanno video game per computer da milioni di ). Nuove applicazioni aprono nuovi mercati e fanno nascere nuove aziende. L esistenza di tante aziende fa crescere la competitività che, a sua volta, stimola il progresso della tecnologia e lo sviluppo di nuove tecnologie.

# Transistor [CPU Intel] 1'000'000'0 00 Numero di transistor integrati 100'000'000 10'000'000 1'000'000 100'000 Andamento previsto dalla legge di Moore: il numero di transistor integrati in un chip raddoppia ogni 24 mesi 10'000 1978 1982 1986 1990 1994 1998 2002 2006 Anno

La memoria

La memoria Supporto alla CPU: deve fornire alla CPU dati e istruzioni il più rapidamente possibile Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità anche dopo elevati periodi di tempo Diverse esigenze: velocità per il supporto alla CPU non volatilità ed elevate dimensioni per l archivio Diverse tecnologie elettronica: veloce, ma costosa e volatile magnetica e ottica: non volatile ed economica, ma molto lenta

Criteri di caratterizzazione di una memoria Velocità tempo di accesso (access time) (quanto passa tra una richiesta e la relativa risposta) velocità di trasferimento (transfer rate) (quanti byte al secondo si possono trasferire) Volatilità cosa succede quando la memoria non è alimentata? per quanto tempo i dati vi rimangono immagazzinati? Capacità quanti byte può contenere? qual è la dimensione massima? Costo (per bit) Modalità di accesso diretta (o casuale): il tempo di accesso è indipendente dalla posizione sequenziale: il tempo di accesso dipende dalla posizione mista: combinazione dei due casi precedenti associativa: indicato il dato, la memoria risponde indicando l eventuale posizione che il dato occupa in memoria.

La memoria centrale

La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica veloce ma volatile e costosa Due eccezioni ROM: elettronica ma permanente e di sola lettura Flash: elettronica ma non volatile e riscrivibile

Indirizzi di memoria I bit nelle memorie sono raggruppati in celle: tutte le celle sono formate dallo stesso numero di bit; una cella composta da k bit, è in grado di contenere una qualunque tra le 2 k combinazioni diverse di bit. Ogni cella ha un indirizzo: serve come accesso all informazione; in una memoria con N celle gli indirizzi vanno da 0 a N 1. La cella è l unità indirizzabile più piccola. In quasi tutti i calcolatori è di 8 bit (un byte). I byte vengono raggruppati in parole (che oggi sono di 32/64 bit), su cui la CPU esegue le operazioni.

Organizzazione della memoria Anche gli indirizzi della memoria sono rappresentati come numeri binari: un indirizzo di M bit consente di indirizzare 2 M celle; per 6 o 8 celle bastano 3 bit, per 12 celle ne servono 4; il numero di bit nell indirizzo determina il numero massimo di celle indirizzabili nella memoria ed è indipendente dal numero di bit per cella (una memoria con 212 celle richiede sempre 12 bit di indirizzo, quale che sia la dimensione di una cella). Una memoria può essere organizzata in diversi modi: per esempio, con 96 bit possiamo avere 6 celle di 16 bit (6*16=96), 8 celle di 12 bit (8*12=96) 12 celle di 8 bit (12*8=96). In genere si considerano celle di 8 bit (1 byte).

Organizzazione della memoria 0 1 2 3 4 5 6 parole da 16 bit 0 1 2 3 4 5 6 7 8 parole da 12 bit 12 parole da 8 bit 0 1 2 3 4 5 6 7 8 9 10 11

Memoria e collegamenti con bus Viene selezionata la parola di indirizzo 0110 2 linee di selezione parola 16 celle di memoria di 8 bit ciascuna il contenuto è 01101100; linea 0 linea 1 linea 2 0 0 0 l operazione è di lettura (load) o di scrittura (store) a seconda dei comandi presenti sul bus di controllo 0110 Bus indirizzi DECODIFICATORE linea 3 linea 4 linea 5 linea 6 linea 7 linea 8 linea 9 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 parola selezionata linea 10 0 linea 11 0 linea 12 0 linea 13 0 linea 14 0 linea 15 0 Bus di controllo leggi/scrivi 0 1 1 0 1 1 0 0 Dato (letto o da scrivere) Bus dati

Memoria vs. CPU Le CPU sono sempre state più veloci delle memorie l aumento di integrazione ha consentito di realizzare CPU pipeline e super scalari, molto efficienti e veloci; nelle memorie è aumentata la capacità più che la velocità. L accesso alla memoria passa attraverso il bus la frequenza di funzionamento del bus è molto più bassa di quella della CPU; il bus può essere impegnato ad effettuare trasferimenti controllati da dispositivi di I/O autonomi (e.g. DMA). È difficile riordinare le istruzioni in modo da poter sfruttare i tempi di attesa della memoria. È possibile fare memorie molto veloci se stanno nel chip della CPU, ma sono piccole e costose.

Le memorie gerarchiche Memorie di gran capacità, relativamente lente, economiche ed accessibili tramite il bus: MGL ovvero Memoria Grossa e Lenta; dimensioni pari a circa 10 unità; tempo di accesso (TA) di circa 10 unità. Memorie veloci, integrate nello stesso chip della CPU, ma costose: MPV ovvero Memoria Piccola e Veloce; dimensioni pari a circa 1 unità; tempo di accesso pari a circa 1 unità. Obiettivo: realizzare una memoria grossa e veloce dimensioni pari a circa quelle della memoria grossa; prestazioni pari a circa quelle della memoria veloce.

Gerarchia di memoria Sistema di memoria Memoria piccola e veloce CPU Livello 1 Livello 2 Trasferimento di dati Memoria grande e lenta

Il principio di località Località spaziale: quando si accede all indirizzo A, è molto probabile che gli accessi successivi richiedano celle vicine ad A. le istruzioni del codice vengono in genere lette da locazioni consecutive della memoria; gli accessi ad array o a strutture dati sono vicini. Località temporale: quando si accede all indirizzo A, è molto probabile negli accessi successivi si richieda di nuovo la cella A. cicli di istruzioni accedono ripetutamente alle stesse locazioni di memoria; istruzioni vicine tendono ad utilizzare le stesse variabili.

Come si sfrutta la località Diversi approcci a seconda del tipo di località: località temporale: i dati prelevati dalla MGL vengono conservati nella MPV il più a lungo possibile; località spaziale: quando si copia un dato dalla MGL alla MPV, si copiano anche i dati vicini (blocco). La frequenza di successo (hit ratio h) cresce fino a superare il 99%: in effetti h dipende da due caratteristiche contrastanti: la dimensione dei blocchi, un blocco grande sfrutta meglio la località spaziale; quanti sono i blocchi in memoria, se c è spazio per tanti blocchi un dato resta in memoria più a lungo e può sfruttare più a lungo la località temporale; c è anche il problema del costo della cache!

La memoria centrale Tecnologia elettronica (veloce ma volatile) Gerarchia di memoria: ai livelli più alti corrispondono le tecnologie più veloci ma anche più costose cache interna (Static RAM SRAM) cache esterna (SRAM) memoria RAM (Dynamic RAM DRAM e sue varianti) area di swap su memoria di massa

Una gerarchia di memoria Ottenuta per generalizzazione dell applicazione del principio di località e tipicamente costituita da 1. registri contenuti nella CPU (qualche KB) 2. cache (da circa 32KB a circa 4096KB) 3. memoria principale (da circa 512MB a qualche GB) 4. dischi fissi (da qualche centinaio di GB a qualche TB) 5. nastri magnetici e dischi ottici (da qualche centinaio di GB a qualche TB per ogni supporto) Man mano che ci si sposta verso il basso nella gerarchia aumenta il valore dei parametri fondamentali: aumenta il tempo di accesso; aumenta la capacità di memorizzazione; ma diminuisce il costo per bit.

Registri Cache I liv Cache II liv RAM CPU Circuito Integrato (chip) Scheda madre (motherboard) Involucro esterno del calcolatore (case) tecnologia magnetica (HD esterni) Supporti esterni tecnologia ottica (CD, DVD) tecnologia elettronica (flash disk) Disco fisso (hard disk) tecnologia magnetica

Livello Capacità Tempo di accesso Transfer rate (GB/s) Registri ~ 1 KB ~ 0.2 ns (1 ciclo di clock) Cache I livello ~ 32 KB ~ 0.4 ns (2/4 cicli di clock) Cache II livello ~ 1/2 MB ~ 1/2 ns (5/10 cicli di clock) ~ 100 Cache III livello ~ 2/8 MB ~ 5 ns ~ 50 Memoria centrale ~ 2/8 GB ~ 50 ns (1ª parola richiesta) ~ 10 ns (parole successive) ~ 5/10 Dischi interni > 300 GB ~ 10 ms 0.15/0.6 Dischi esterni > 300 GB ~ 10 ms ~ 0.05