Capitolo 1 - Bit
Il bit non ha colore o peso e può viaggiare alla velocità della luce. Il suo acronimo è Binary Digit; può esprimere due valori tra 0/1. È l'unità elementare dell'informazione e indica uno stato di: acceso/spento, vero/falso, 0/1. Con un bit possono essere codificate due alla 1 informazioni differenti (due informazioni un bit) perché si esprime in potenza di due; il bit fa parte dell'insieme della teoria dell'algebra di Boole. Tra bit possono essere fatte operazioni logiche.
Tabelle di verità
Le tabelle di verità, dove P e Q sono le condizioni di partenza: NOT restituisce l'inverso all'operando; AND restituisce 1 se gli operandi hanno valore 1; OR restituisce 1 se almeno uno degli operandi ha valore 1. AND e OR restituisce vero se le precondizioni di partenza sono vere.
Con due bit si possono codificare 4 informazioni diverse (2:2 alla seconda); con 3 bit si possono codificare 8 informazioni differenti (2:2 alla terza). Un gruppo di 8 bit (ottetto, ossia 8 bit di fila) prende il nome di byte, con cui si possono codificare 256 informazioni differenti (o da 1 a 256 oppure da 0 a 255). Il byte codifica i caratteri, simboli, segni di interpunzione.
Codifica standard
Una codifica standard è quella dell'American Standard Code for Information Interchange compiuta dalla ASCII, che attribuisce una corrispondenza tra numeri e simboli (es. 105 = i). Altre codifiche esistono oltre all'ASCII e sono ANSI e EBCDIC. Il byte rappresenta una piccola quantità di informazioni, quindi per scrivere "Mara" avrò bisogno di 4 byte.
Unità di misura informatiche
Nel sistema metrico, il prefisso k (kilo) indica 1000, cioè (103); in informatica i calcoli sono basati su una potenza di 2, quindi diremo (210) → circa 1000 byte perché in realtà sono 1024. (Kilobyte) Kappa deve essere minuscolo altrimenti con Kappa maiuscolo si pensa a Kevin. Il prefisso M (mega) indica (220) → circa un milione di byte (Megabyte). Il prefisso G (giga) indica (230) → circa un miliardo di byte (Gigabyte). Con le dita di una mano posso contare fino a 32 ossia 2:25.
Capitolo 2 - Modello di Von Neumann
I moderni calcolatori sono basati su questo modello. Esso è fondato su un processore (CPU) → Central Processing Unit ed una memoria che contiene dati ed istruzioni; sono le unità fondamentali.
Processore
Il processore è composto da un'unità aritmetico logica (Arithmetic Logic Unit - ALU) ed un'unità di controllo (Control Unit - CU). L'unità aritmetico logica (ALU) è la parte del processore deputata ad eseguire le operazioni aritmetiche e logiche sui dati di input e output, ad esempio la somma e il confronto. L'unità di controllo (CU) è la parte del processore deputata al controllo delle operazioni di lettura delle informazioni, di dati e istruzioni, al controllo delle operazioni dell'unità aritmetico logica. La CPU è il dispositivo di un calcolatore che interpreta ed esegue le istruzioni, cioè i programmi di elaborazione dei dati.
Memoria
Secondo tale modello, nella memoria del calcolatore sono caricati: istruzioni e dati. Nei nostri computer, la memoria del modello di Von Neumann è la RAM. Le unità di input rappresentano quindi tutte quelle periferiche attraverso le quali è possibile immettere informazioni. Le unità di output rappresentano tutte quelle periferiche attraverso le quali è possibile ottenere informazioni da un calcolatore. La memoria è la principale periferica di input ed output per la CPU. La CU sovrintende alle operazioni di trasferimento delle informazioni dalle unità di input alla memoria e dalla memoria alle unità di output.
Capitolo 3 - Il processore
Il processore è la parte essenziale di un computer deputata al calcolo e al controllo. Esegue quindi le istruzioni dei programmi e gestisce il flusso di informazioni da e per le unità di input e output. Il software è strettamente dipendente dall'architettura del processore.
Caratteristiche essenziali del processore
- Bit interni che determinano la portata delle informazioni.
- Frequenza che determina il ritmo con il quale vengono gestite le informazioni da processore; le unità di misura della frequenza è l'Hertz (Hz), che corrisponde ad un evento per secondo. Es. processori AMD ed Intel.
- La progressiva miniaturizzazione dei circuiti (nm) ha dato un decisivo impulso alle capacità di calcolo della CPU, consentendo il parallelismo delle unità elementari.
- Ciascuna di tali unità è detta core. Si possono avere processori dual-core, quad-core, ecc. Le singole unità sono presenti in un unico chip fisico. Tutti i core accedono alla stessa memoria e svolgono le applicazioni per threads in parallelo simultaneamente.
- La performance di un processore è dipendente dalla portata, dal ritmo e dal parallelismo con il quale processa le informazioni. Quanto maggiore è il numero di bit interni, la frequenza del numero di core, migliore sarà la sua performance.
- Per grandezze della performance distinguiamo: MIPS (milioni di istruzioni elementari per secondo), cioè la misura del numero di comandi interni che vengono elaborati in un secondo. FLOPS misura il numero di operazioni in virgola mobile che vengono eseguite in un secondo.
Capitolo 4 - Memoria RAM
RAM (Random Access Memory) → concretizzazione del modello astratto di Von Neumann. È una memoria ad accesso casuale, dove per casuale si intende il tempo di accesso ad una qualsiasi informazione contenuta nella RAM, non dipendente dalla sua posizione. L'accesso casuale, il tempo di accesso è mediamente il medesimo, cioè non dipende dalla sua posizione; alle informazioni è intrinsecamente più veloce dell'accesso sequenziale (le prime informazioni sono accessibili più velocemente delle ultime).
Caratteristiche della RAM
- Volatile: funziona fino a che è percorsa da energia, quando manca energia perde il suo contenuto.
- Veloce (aspetto più positivo) rispetto alle memorie di massa perché ha tempi di accesso medi alle informazioni minori.
- Costosa rispetto alle memorie di massa, ossia i dischi fissi.
I bus sono i canali attraverso i quali si trasmettono le informazioni tra le varie componenti del modello di Von Neumann. Di particolare interesse è il bus tra memoria ed il processore. Il parallelismo del flusso influenza la "quantità" di informazioni che vengono trasmesse nell'unità di tempo. Il bus di sistema è il bus che connette i principali elementi di un computer e svolge le funzioni di combinare: data bus, per il trasporto delle informazioni; address bus, necessario al loro indirizzo; control bus, necessario alle operazioni di controllo da parte della CU.
La CPU accede alle informazioni contenute in memoria RAM attraverso il bus principale. Questo è caratterizzato da un proprio parallelismo legato a quello interno della CPU; nei PC moderni il parallelismo di BUS arriva a 64 bit. Le moderne RAM presentano tempi medi di accesso intorno alle decine di nanosecondo (10-60 nm); i processori hanno accesso pressoché immediato alle informazioni contenute nei registri (piccole zone di memoria interne).
Per quanto siano brevi i tempi medi di accesso alle informazioni in RAM e maggiore il parallelismo dei bus, i processori moderni devono inutilmente spendere cicli di clock in attesa che arrivino informazioni dal processore. A partire dagli 80486, i processori sono muniti di piccole zone di memoria interna detti 1Lcache ad accesso molto veloce nelle quali vengono immagazzinate le informazioni usate più frequentemente in modo da ottimizzare i tempi di elaborazione. Le memorie cache direttamente integrate nei processori si dicono di primo livello, ammontano a pochi kilobyte (64) e presentano tempi medi di accesso molto bassi (15-20 ns). I cache di secondo livello (2Lcache) sono di capacità (512 kb) più grande della prima, sono esterni al processore, integrati sulla scheda madre, ma svolgono ugualmente le funzioni di quelle di primo livello. Presentano tempi medi di accesso intermedi tra le 1Lcache e le RAM. Dal primo livello della memoria cache 1Lcache alla memoria RAM aumenta il tempo di accesso e la disponibilità diminuisce.
Capitolo 5 - Memoria ROM
La memoria ROM (Read Only Memory) è la memoria di sola lettura del PC che contiene dati e istruzioni fondamentali per l'accensione della macchina ed il caricamento del sistema operativo. È una memoria non riscrivibile (di sola lettura); è una memoria non volatile (cioè non perde il contenuto informativo quando si spegne la macchina); a macchina spenta viene generalmente alimentata a batteria. La ROM BIOS contiene alcune routine (set d'istruzioni di basso livello) che permettono alla macchina di eseguire semplici operazioni di input e output sulle specifiche periferiche di cui dispone la macchina. BIOS (Basic Input Output System) come software di base.
Nella ROM risiede un set d'istruzioni per l'accensione e l'avviamento della macchina. Le routine di bootstrap (controlli di verifica delle periferiche di input/output) servono per tenere pronta la macchina. Consentono ad un calcolatore di compiere alcune verifiche sul processore e sulle periferiche collegate (dischi, tastiera) e di prepararsi al caricamento del sistema operativo vero e proprio.
EPROM
EPROM (Erasable Programmable Read Only Memory): I costi di produzione delle ROM sono elevatissimi; inoltre una ROM presenta il notevole svantaggio di non essere riscrivibile ed aggiornabile rispetto ad eventuali periferiche di input ed output. Una EPROM consente di superare i due problemi appena rappresentati: sono chip di memoria non volatile programmata dopo la fabbricazione, consentono di abbattere i costi perché se ne costruisce una e molti costruttori possono usare la stessa. Possono essere dunque completamente cancellate e completamente riprogrammati. La RAM non dipende dalla ROM.