Il funzionamento dei calcolatori moderni Come è fatto un calcolatore moderno? Hardware Software componenti concrete, fisiche componenti concettuali, metafisiche Le caratteristiche fondamentali delle apparecchiature dei moderni computer sono derivati dal modello di Von Neumann Memoria principale o centrale o RAM Unità centrale o processore o CPU Unità di ingresso e di uscita - la CPU (Central Processor Unit) carica le istruzioni del programma e le esegue; - la memoria ROM (Read Only Memory) che è di sola lettura; - la memoria centrale o RAM (Random Access Memory); - le unità di ingresso e uscita (I/O) forniscono funzionalità specifiche relative al trattamento di informazione; Tre differenti canali di collegamento: - data bus o bus dati per la trasmissione dei dati (valori numerici o codici e istruzioni). Questo canale è bidirezionale; - address bus o bus indirizzi per la trasmissione degli indirizzi (memoria o I/O). Questo canale è unidirezionale (da CPU agli altri); - control bus o bus controlli permette di avere attivi sullo stesso canale solo le due unità interessate. Questo bus è bidirezionale; memoria centrale, interna al calcolatore, direttamente accessibile dalla CPU, contiene i programmi e i dati necessari all'esecuzione dei programmi la memoria secondaria o di massa, esterna al calcolatore. Viene utilizzata per memorizzare grandi quantità di informazioni, è persistente (conserva le informazioni), ma l’accesso all’informazione è meno rapida rispetto alla memoria centrale MEMORIA CENTRALE - un insieme finito di locazioni (celle o registri) di uguali dimensioni (struttura a matrice); - si chiama indirizzo di una locazione la posizione che questa occupa nella memoria rispetto alla prima locazione che ha indirizzo zero; - ogni locazione è caratterizzata da un indirizzo e dal contenuto; - il contenuto di una locazione ovvero l'informazione in essa registrata si chiama parola di memoria (stessa lunghezza); - una cella di memoria è la più piccola quantità di memoria accessibile pertanto rappresenta l'unità di informazione scambiata tra i vari elementi funzionali ; - l’accesso all’informazione è casuale (tempo di accesso sempre uguale, dell'ordine di nanosecondi, cioè 10-9); - operazioni di lettura o scrittura, un segnale di controllo apposito R/W (Read/Write) indica quale operazione; Lettura (trasferimento fisico dei byte contenuti nella locazione dalla memoria all’unità centrale di processamento) 1) si scrive in un apposito registro di memoria (MAR) l'indirizzo della locazione; 2) indirizzo trasferito al bus degli indirizzi che lo trasporta in memoria; 3) attesa per l'accesso, si scrive sul bus dati il contenuto della locazione letta; 4) contenuto caricato (load) nel regitro dei dati (MDR) a disposizione della CPU. Scrittura (trasferimento fisico del contenuto del registro dei dati (MDR) nella locazione di memoria) 1) e 2) uguali 2.1) si scrive sul registro MDR il dato da memorizzare (store); 2.2) il dato trasferito al data bus che lo trasporta in memoria; 3) Attesa per l’accesso, si scrive il dato nella locazione selezionata; 4) NO. Non c’è solo la RAM… Una porzione di memoria centrale, è realizzata con diversa tecnologia e viene identificata con il termine ROM (Read Only Memory). Serve per memorizzare in modo permanente informazioni necessarie per l’avviamento del sistema. Esistono altresì ROM programmabili (PROM, Programmable ROM) ROM programmabili e cancellabili (EPROM Erasable PROM, EAROM Electrical Alterable ROM). CPU CU (Control Unit), interpreta e attiva le risorse necessarie alla esecuzione. E’ la rete logica che gestisce e coordina il funzionamento del processore: gestisce le fasi di indirizzamento e di accesso ai bus e regola il flusso dei dati all’interno del processore (sequenzializzazione) ALU (Arithmetic Logic Unit), costituita da alcuni registri interni e da dispositivi circuitali che consentono di eseguire le operazioni sugli operandi memorizzati nei registri interni all’ALU - registro accumulatore (A), per un operando e risultato operazione; - registro operando (OP), per un altro operando coinvolto; - registro di stato (PSW - Processor Status Word) per l'esito dell’operazione eseguita (Flag). La CU interpreta i flag e intraprende azioni differenziate IR PSW PC ALU CU A MAR OP MDR I/O Memoria centrale Registri un registro è un insieme di n circuiti logici, detti FLIP-FLOP. I registri fondamentali sono: - il registro degli indirizzi di memoria (MAR Memory Address Register) indica l'indirizzo della locazione di memoria che si vuole selezionare; - il registro dei dati di memoria (MDR Memory Data Register) contiene il dato proveniente dalla locazione di memoria selezionata o il dato che si vuole memorizzare nella locazione di memoria selezionata; - il contatore di programma (PC Program Counter) ha la funzione di guidare il flusso della esecuzione di un programma, infatti il suo contenuto indica l'indirizzo della prossima istruzione da eseguire; - il registro della istruzione corrente (IR Instruction Register) contiene l'istruzione da decodificare e eseguire; Altro registro è quello delle interruzioni (INTR Interrupt Register) contiene informazioni sullo stato di funzionamento delle periferiche. IR PSW PC ALU CU A MAR OP MDR I/O Memoria centrale I dispositivi circuitali implementano il set di istruzioni eseguibili dall’elaboratore Istruzione = codice operativo + operandi Suddivisione elaboratori: CISC (Complex Instruction Set Computer) e RISC (Reduced Instruction Set Computer) CISC: programmazione più semplice e veloce – elevato tempo di decodifica e alto spazio occupato dai circuiti per la decodifica RISC: basso tempo di decodifica delle istruzioni e piccolo spazio occupato dai Circuiti per la decodifica – programmazione più lunga e meno ottimizzata Dispositivi di Input/Output periferiche per l'input (per passare informazioni al calcolatore) periferiche per l'output (per ricevere informazioni dal calcolatore) I dispositivi (interfacce) di I/O permettono la comunicazione, il trasferimento dei dati tra calcolatore e unità periferiche e viceversa. Hanno dei registri: - un registro dati RDP, per scambiare dati tra la periferica e la CPU - un registro comandi RCP, contiene il comando che la periferica deve eseguire - un registro di stato, per lo stato della periferica: spenta, accesa, fuori uso, … La funzione fondamentale di un’interfaccia è la traduzione tra formato esterno e formato interno dei dati: dati in input interfaccia: convertiti nel formato interno del computer dati in memoria interfaccia: convertiti nel formato della periferica dati di output Le fasi dell’elaborazione PC 1° istruzione Fetch (reperimento e caricamento dell’istruzione da eseguire) Fase di decode (decodifica del codice operativo a carico dell'unità di controllo) Fase di execute (esecuzione vera e propria della istruzione; prima della esecuzione viene comunque eseguita la fase di fetch degli operandi) Le fasi di elaborazione sono scandite da un segnale (detto orologio di sistema o clock) emesso appositamente per mantenere la sincronizzare tra le varie unità. MAR PC PC PC + 1 o salto MDR mem[MAR] IR MDR EXEC DECODE ALT SI NO Stato di un sistema Esecuzione di un’istruzione: attraverso una sequenza di cambiamenti di stato del processore, scandita da un segnale periodico (clock) Stato = l’insieme degli stati fisici di ogni filo elettrico del sistema Il segnale è trasportato da un filo per tutto il chip contenente il processore clock della CPU = orologio interno, definisce tempo di esecuzione di un’istruzione La frequenza del clock si misura in MHz (MegaHertz): numero di operazioni elementari eseguite in un secondo (velocità) Es.: un processore a 800 MHz cambia stato 800 milioni di volte al secondo Intel (Pentium), Amd (Athlon), stesso IS, parlano la stessa lingua chiamata x86 Ibm (PowerPC), altro IS per i computer Macintosh …architettura a 32 bits potenza di un processore frequenza, architettura interna Architetture CISC e RISC CISC (Complex Instruction Set Computer): molte istruzioni complesse di formato variabile V programmazione più semplice e veloce; SV elevato tempo di decodifica delle istruzioni e molto spazio occupato dai circuiti per la decodifica; molte fasi abbastanza complesse RISC (Reduced Instruction Set Computer): poche istruzioni semplici di formato fisso V basso tempo di decodifica delle istruzioni e poco spazio occupato dai circuiti per la decodifica; poche fasi molto semplici per ogni istruzione SV programmazione più lunga e meno ottimizzata Velocità di esecuzione di un’istruzione determina la velocità della CPU CISC: le istruzioni richiedono più periodi di clock macchine più potenti; RISC: ogni istruzione in un solo ciclo periodo di clock sistema più veloce CISC anni '70 e '80 – RISC fino ad oggi … fattori di mercato e fattori tecnologici … EVOLUZIONI dell’architettura di Von Neumann limite principale: operazioni eseguite in stretta sequenza CPU più veloci: spesso non sufficiente …varie forme di parallelismo… Estensioni all'architettura di Von Neumann - processori dedicati, co-processori (processore aritmetico, processore grafico) che lavorano parallelamente alla CPU o per particolari operazioni - possibilità di eseguire alcune istruzioni parzialmente in parallelo - uso di gerarchie di memorie con prestazioni e costi decrescenti (es.: cache, per tenere copia di parte dei dati della memoria centrale con accesso più rapido) - macchine con diverse CPU che agiscono contemporaneamente (macchine parallele o multiprocessore) Architettura interna (CPU superscalare) Nella CPU più unità di controllo e più unità logico-aritmetiche ALU 1 CU 1 ALU 3 CU 3 ALU 2 ALU 1 CU 2 CU 1 ALU 4 CU 4 Architettura parallela Centrale di calcolo molte CPU - più processori ed una sola memoria (Symmetric Multiprocessing o SMP) con bus unico Architettura semplice da costruire ma con “problemi di traffico” (ad es.: server di rete nei sistemi gestionali) - Supercomputer: più processori ciascuno con propria memoria (Massively Parallel Processing o MPP) Architettura complessa, molto potente (necessario in calcoli molto complessi come reazioni nucleari, calcoli metereologici, ecc.) Le componenti principali di un personal computer Scheda madre (motherboard) il processore (CPU) la memoria RAM il BIOS controller per unità a dischetti e dischi fissi: per comunicare con altre unità di memoria di massa (tecnologie IDE, EIDE, SCSI) gli slot (alloggiamenti delle schede di espansione) a 16 e 32 bit: per installare le espansioni di capacità elaborative (tecnologie AGP, PCI, ISA), ovvero ulteriori processori il Chipset: gruppo di elementi che gestisce e coordina il funzionamento degli altri componenti. Controllo dell' I/O (Input/Output), dell' I/O del bus e elettronica di gestione dei dischi fissi e CD-ROM porte di comunicazione: seriale (1 bit alla volta), parallela (8 bit alla volta), USB (Universal Serial Bus, seriale con alta velocità di trasferimento, connessione e configurazione rapida delle periferiche, possibilità di connettere fino a 127 dispositivi in sequenza) Scheda Video BIOS Processori Pentium II Intel Parallela Seriali socket USB Porte seriali Porte USB Porte parallele AGP slot (Accelerated Graphic Port) Porte IDE: Hard disk CD-ROM Floppy RAM Chipset Slot processore Alimentazione PCI slot (Periferals Communication Interface) – modem, audio, video BIOS ISA slot (Industrial Standard Architecture) vecchia connessione Start Impostazioni Pannello di controllo Sistema Generale Gestione periferiche Le periferiche Monitor - per visualizzare il responso in real time; costituito da una griglia di lampadine (pixels – picture element) che possono assumere diversi colori; standard: 14 pollici (1024 768 pixels) e 17 pollici (1280 1024 pixels); risoluzione è di 72 72 dpi (dot per inch = pixel per inch). Tastiera - converte la digitazione di un carattere in un parola del codice ASCII Mouse - per puntare e selezionare oggetti sul monitor, SO con una GUI (Graphical User Interface); puntatori video alternativi: trackball (due tasti e una sfera), touchpad (computer portatili) e il joystick (giochi elettronici) Hard Disk e Hard disk drive - per la memorizzazione, lettura e scrittura dei dati Lettori CD/DVD - per leggere i dati su CD/DVD; velocità espressa in n (Data Transfer Rate, quantità di dati inviata al pc); standard 50 (1x = 150 MB/s) Masterizzatore - per scrivere dati su un CD; standard 8 - 12 Floppy disk drive - per leggere e scrivere dati su un floppy disk Modem - per trasmettere dati sulla linea telefonica; standard 56Kbps Scanner - per acquisire digitalmente immagini stampate; funzione tipica è anche quella di leggere parti scritte di documenti (OCR = Optical Character Reader) Stampante - a getto d’inchiostro o inkjet (getto di minuscole gocce di inchiostro) e laser (laser agisce su un tamburo rivestito di materiale fotosensibile; l’inchiostro aderisce e poi trasferito su carta) Telecamera web - per acquisire sequenze video o immagini fotografiche da memorizzare e/o trasmettere in real time Tavoletta grafica (digitizer) - per rilevare le coordinate dei punti di un disegno Plotter - tracciatore di disegni costituito da una tavoletta o rullo e una penna collegata ad un braccio meccanico che disegna il grafico I tipi attuali di computer Supercomputer- notevole capacità computazionale, per lo più macchine parallele fino a qualche migliaio di processori, che occupano diversi metri cubi di spazio, per grandi progetti; molto specializzati, per lo più con poca dotazione di software e progettati per svolgere operazioni matematiche molto velocemente Mainframe - di elevata capacità, occupano lo spazio di pochi metri cubi; utilizzati per collegare molti utenti con terminali ad interfaccia grafica semplice; attualmente si tende ad utilizzarli per gestire grosse basi di dati Minicalcolatori - gestiscono un certo numero di utenti (10 -100); per lo più utilizzati come server e utenti con interfaccia grafica più raffinata Workstation - di elevata capacità computazionale; minicalcolatori dedicati ad un solo utente e dotati di un’interfaccia grafica ad alte prestazioni Personal computers - i comuni PC; calcolatori simili alle workstation ma con prestazioni ridotte Lap-top computers - computer portatili; prestazioni simili ai pc Palm-top computers - computer palmari