Calcolatori Elettronici e Sistemi Operativi modulo Calcolatori Elettronici Prof. Laura Tarantino Dipartimento di Ingegneria Elettrica e dell’Informazione Lezione 1 – Argomento 3 Conservazione dell’informazione: concetti di base Informatica informazione automatica Trattamento automatico dell’informazione rappresentazione conservazione deleghiamo uno strumento relazione tra dati elaborazione deve esistere un linguaggio comune tra delegante e delegato 2 1 Flusso tradizionale dell’informazione ambiente Trasferimento Elaborazione Memorizzazione Controllo 3 La macchina di Von Neumann (1) Sistema di calcolo Dispositivi Memoria (passiva) Input Output Processore (attivo) Central Processing Unit (CPU) 4 2 La macchina di Von Neumann (2) Sistema di calcolo Dispositivi Memoria Input Processore Output Unità di calcolo Unità di controllo 5 La memoria - generalità Funzioni: — Supporto alla CPU: deve fornire dati ed istruzioni il più rapidamente possibile — Archiviazione: deve consentire di archiviare dati e programmi, garantendone la conservazione e la reperibilità anche dopo elevati periodi di tempo Esigenze diverse: — velocità per il supporto alla CPU — non volatilità e capacità per l’archiviazione Tecnologie diverse: — elettronica: veloce, ma costosa e volatile — magnetica e ottica: non volatile ed economica, ma molto lenta 6 3 La macchina di Von Neumann (3) Sistema di calcolo Dispositivi Memoria principale Input Memoria secondaria Processore Output Unità di calcolo Unità di controllo 7 Conservare in memoria - i componenti la memoria principale è una successione ordinata di componenti digitali che possono assumere uno tra due valori e conservarlo stabile nel tempo finché c’è alimentazione ogni componente elementare della memoria può rappresentare e conservare un bit 8 4 Conservare in memoria - le celle i bit nella memoria sono raggruppati in celle — tutte le celle della memoria sono composte dallo stesso numero di bit — se una cella è composta da k bit può assumere 2k configurazioni distinte 8 bit Esempio se una cella è composta da 8 bit (che costituiscono un byte) può assumere 28 = 256 configurazioni distinte possiamo ad esempio rappresentare i numeri assoluti nell’intervallo [0, 255] 9 Conservare in memoria - gli indirizzi (1) bisogna poter accedere a celle selezionate, e non casualmente — ogni cella della memoria viene associata ad un identificatore univoco detto indirizzo della cella — se la memoria contiene N celle gli indirizzi vanno da 0 a N-1 8 bit Esempio se abbiamo una memoria con 8 parole gli indirizzi vanno da 0 a 7 0 1 2 3 4 5 6 7 10 5 Conservare in memoria - gli indirizzi (2) la cella è la più piccola unità di memoria indirizzabile nella maggior parte dei calcolatori una cella è composta da un byte (8 bit) si parla quindi di memoria indirizzabile al byte 11 Conservare in memoria - le parole per la maggior parte delle elaborazioni reali il potere rappresentazionale del byte (255 configurazioni) è insufficiente i byte vengono quindi raggruppati per formare stringhe di bit più lunghe, dette parole — tutte le parole della memoria sono composte dallo stesso numero di byte 32 bit — nei calcolatori attuali le parole sono composte da 32 bit (4 byte) 12 6 Terminologia - unità di misura (1) bit (quantità minima di informazione) 8 bit = 1 byte 16 bit = 2 byte = mezza parola 32 bit = 4 byte = 1 parola 64 bit = 8 byte = parola doppia 13 Terminologia - unità di misura (2) = 210 byte = 1024 byte 1 kilobyte 1 megabyte = 220 byte = circa un milione di byte 1 gigabyte = 230 byte = circa un miliardo di byte 1 terabyte = 240 byte = circa mille miliardi di byte 14 7 Conservare in memoria - indirizzi (3) l’indirizzo della parola è l’indirizzo di uno dei suoi byte 32 bit 0 4 8 12 ... 15 Conservare in memoria - indirizzi (4) Come vengono numerati i byte di una parola? little endian 3 2 1 0 MSB (most significant byte) LSB (least significant byte) 0 1 2 3 big endian Little Endian: la parola ha l’indirizzo del byte meno significativo (Intel 80x86) Big Endian : la parola ha l’indirizzo del byte più significativo (IBM/Motorola PowerPC, Sparc) 16 8 Conservare in memoria - indirizzi (5) Gli indirizzi in memoria sono codificati in binario Con k bit si possono costruire 2k configurazioni diverse, quindi con un indirizzo da k bit si possono indirizzare: — 2k byte, ossia — 2k/4 = 2k-2 parole (ricorda: 1 parola = 4 byte) Esempio con 8 bit si possono indirizzare — 28 = 256 byte, ossia — 28/4 = 26 = 64 parole 17 Organizzazione della memoria Allineata se tutte le parole iniziano ad indirizzi che sono multipli di 4 0 1 2 3 Allineata Non Allineata 18 9 Conservazione nelle parole di memoria (1) tutte le stringhe sono da 32 bit si ottengono 232 configurazioni diverse che possono contenere interi, relativi, reali, caratteri (e istruzioni) Nel caso degli interi assoluti si possono rappresentare i numeri da 0 a 232 - 1 = 4 292 967 295dieci Estensione (solo stringhe a 32 bit): 1101 → 0000 0000 0000 0000 0000 0000 0000 1101 aggiungere zeri “in testa” non cambia il valore del polinomio 19 Conservazione nelle parole di memoria (2) Nel caso dei relativi 0000 ... 0000 0000 0000 ... 0000 0000 0000 ... 0000 0000 ... 0111 ... 1111 1111 0111 ... 1111 1111 0111 ... 1111 1111 1000 ... 0000 0000 1000 ... 0000 0000 1000 ... 0000 0000 ... 1111 ... 1111 1111 1111 ... 1111 1111 1111 ... 1111 1111 0000 0000 = 0000 0001 = 0000 0010 = 1111 1111 1111 0000 0000 0000 1111 1111 1111 0000 0000 0000 0 1 2 = 2 147 483 645 = 2 147 483 646 = 2 147 483 647 = –2 147 483 648 = –2 147 483 647 = –2 147 483 646 1111 1101 = 1111 1110 = 1111 1111 = -3 -2 -1 20 10 Nel caso dei reali: Standard IEEE 754 (1) Precisione singola (una parola) 23 8 segno mantissa 1 esponente polarizzato bisogna sottrargli 127 per ottenere l’esponente reale significante della mantissa l’1 della parte intera è sottinteso visto che è sempre presente polarizzazione numdieci = (-1)segno x (1 + significante) x 2 (esp_pol - 127) (-1) 0 = 1 (-1) 1 = -1 21 Nel caso dei reali: Standard IEEE 754 (2) Precisione doppia (due parole) segno mantissa 1 20 11 esponente polarizzato significante della mantissa (prima parte) significante della mantissa (seconda parte) 32 polarizzazione = 1023 in totale 52 bit per il significante 22 11 Nel caso dei reali: Casi speciali non viene aggiunto l’1 della parte intera della mantissa Esponente Significante polarizzato tutti 0 tutti 0 tutti 0 ≠0 tutti 1 tutti 0 tutti 1 altro ≠0 qualsiasi tra 0 e il più piccolo numero normalizzato Oggetto rappresentato 0 numero denormalizzato +/- infinito ad es., dopo divisione per zero Not a Number (NaN) numero in virgola mobile dopo operazione non consentita ad es., 0/0 oppure ∞ - ∞ 23 12