Arch. degli Elaboratori e Laboratorio Introduzione al corso Salvatore Orlando 2000 Salvatore Orlando 1 6FRSLGHOFRUVR • Il corso, in congiunzione con il Laboratorio, si prefigge di svelare i seguenti aspetti di un moderno computer: – l’organizzazione interna e il funzionamento • discutendo le componenti principali, quali CPU, Memoria, I/O – concause HW/SW delle prestazioni • come si misurano le prestazioni – segreti della programmazione • scendendo rispetto al livello di astrazione linguaggio ad alto livello • questo è lo scopo principale del corso di Laboratorio • Perché bisogna studiare questa materia? – per poterti poi definire un vero informatico – perché vuoi costruire del software usabile e veloce – perché nella tua professione dovrai spesso prendere decisioni di acquisto HW/SW 2000 Salvatore Orlando 2 ,QWURGX]LRQH • Architettura dei calcolatori: campo in rapidissima evoluzione: – valvole -> transistor -> IC -> VLSI • ogni 1,5 anni osserviamo il raddoppio di: capacità di memoria velocità del processore (dovuto a miglioramenti nella tecnologia e nell’organizzazione) • abbattimento dei costi contemporaneo all’incremento di velocità – Considerando come base gli anni ‘40, se l’industria dei trasporti avesse seguito la stessa evoluzione: US coast-to-coast in 5 sec. per solo mezzo dollaro 2000 Salvatore Orlando 3 ,QWURGX]LRQH • incremento prestazioni e abbattimento costi – permette di affrontare e risolvere applicazioni sempre più complesse • integrazione con la rete – ancora nuove applicazioni del computer (es. WEB) • integrazione con la rete telefonica e cellulare – nuovi hw e applicazioni (palmtop) 2000 Salvatore Orlando 4 &RP¶qIDWWRXQFRPSXWHU" • Componenti: – Input/Output (I/O) - mouse, tastiera (I) - video, stampante (O) - dischi (I/O e memoria) - CD (I e memoria) - rete (I/O) – memoria - DRAM, SRAM – processore - parte operativa o datapath - parte controllo Processore Control Memoria Datapath I/O 2000 Salvatore Orlando 5 &RP¶qIDWWRXQFRPSXWHU" • Memoria volatile – usata per memorizzare programmi e dati durante l’esecuzione (concetto di stored-program introdotto da Von Neumann) • Processore – è l’esecutore delle istruzioni appartenenti ad un certo Instruction Set (IS) ben definito – ISA costituisce il linguaggio (povero) compreso da un moderno processore – le istruzioni sono lette dalla memoria e modificano dati in memoria o agiscono sull’I/O – Parte Controllo → mente Parte Operativa → braccio • I/O – serve per comunicare con l’esterno – dispositivi di memoria secondaria (memoria non volatile) sono anch’essi comunemente considerati I/O 2000 Salvatore Orlando 6 /LYHOOLGLDVWUD]LRQH • Uno dei nostri principali scopi sarà capire la struttura del processore – implementato usando milioni di transistor – impossibile da capire guardando ai singoli transistor – se guardiamo invece all’ISA, scopriamo una macchina “stupida”, in grado di comprendere (interpretare) semplici istruzioni (a loro volta, sequenze di bit) come operazioni elementari (es. somma di due interi) – abbiamo bisogno di astrarre …. • STRUTTURAZIONE IN LIVELLI DI ASTRAZIONE – dell’hardare e del software 2000 Salvatore Orlando 7 /LYHOOLGLDVWUD]LRQH • I livelli più bassi rivelano più informazioni • I livelli più alti astraggono omettendo dettagli • L’astrazione ci permette di affrontare la complessità e i dettagli • I livelli più alti virtualizzano, ovvero offrono una vista virtuale dei livelli inferiori • Macchina virtuale: appare più potente e semplice da programmare della macchina nuda A = B + C Livello Linguaggio ad alto livello Compilatore Livello add $4, $5, $6 Linguaggio assembler Assemblatore 00000010010001010011000100100000 Livello Linguaggio macchina (ISA) 2000 Salvatore Orlando 8 6WUXWWXUD]LRQHLQOLYHOOL • Tradizionale vista in livelli dell’architettura hw/sw di un computer, ovveri dei linguaggi riconosciuti da ogni livello – interprete o compilatore per tradurre tra linguaggi • Sistema operativo (livello particolare interpretato): – possiamo pensare al S.O. come un livello il cui linguaggio è l’ISA estesa con nuove istruzioni ad alto livello per gestione risorse (es. I/O). Nuove istruzioni ≡ procedure scritte con linguaggio ISA Livello 4: Linguaggio ad alto livello Livello 3: Linguaggio Assembler Livello 2: Sistema Operativo Livello 1: Linguaggio Macchina Livello 0: hardware/firmware 2000 Salvatore Orlando 9 /LYHOORKDUGZDUHILUPZDUH • hardware: composto da fili e porte logiche (gates) realizzati tramite transistor (speciali interruttori) – gates elaborano segnali binari (0/1) – tramite questi segnali è possibile rappresentare qualsiasi tipo di informazioni – interconnettendo gates e fili è possibile realizzare funzioni complesse (es. moltiplicazioni di interi) – è anche possibile realizzare elementi di memoria (utilizzati per dati e programmi) • firmware: microprogrammi, interpretati dalla parte controllo del processore per interpretare, a sua volta, le istruzioni dell’ISA 2000 Salvatore Orlando 10 /LYHOOROLQJXDJJLRPDFFKLQD,6$ • È il livello di macchina nuda che appare al programmatore di sistema • Comprende insieme di istruzioni che di solito sono diverse per ogni processore – portabilità binaria • La sintassi è adatta ad essere interpretata dal livello hw/fw – stringhe di bit con formato e posizioni ben determinate per • i codici che individuano l’operazione che l’istruzione dovrà eseguire • gli operandi per eseguire l’operazione 2000 Salvatore Orlando 11 /LYHOOROLQJXDJJLRDVVHPEOHU • Offre al programmatore di sistema una vista più “umana” del livello macchina – istruzioni espresse con stringhe di caratteri mnemoniche invece di stringhe binarie – traduzione realizzata dall’assemblatore (è uno speciale compilatore) • L’assemblatore è stato il primo software di sistema realizzato per facilitare la programmazione dei calcolatori • Lo studio dell’assembler sarà oggetto del corso di laboratorio. In particolare – studieremo il passaggio tra linguaggio ad alto livello e il linguaggio assembler • principali strutture di controllo e strutture dati 2000 Salvatore Orlando 12 /LYHOOROLQJXDJJLRDGDOWROLYHOOR • C, C++, Modula 3, Java • Permette al programmazione una maggiore astrazione sui livelli sottostanti della macchina • Ha di solito bisogno di un traduttore (compilatore) • Per alcuni linguaggi esistono interpreti: per esempio Java • Permette di realizzare la portabilità tra processori con diversa ISA – basta che esista il compilatore implementato per la nuova ISA – necessario ricompilare 2000 Salvatore Orlando 13 &RPSXWHUWUDGL]LRQDOH • Video: unità di uscita (O) • Tastiera/mouse: unità di ingresso (I) • Scatola: contiene – alimentatore – scheda madre – processore – memoria volatile (RAM) – dischi (memoria stabile, I/O) – dispositivi di I/O per rete (LAN / MODEM) 2000 Salvatore Orlando 14 9LGHR • CRT (Cathode Ray Tube) – fascio di elettroni “spennellato” su una matrice di fosfori – necessario il refresh continuo dello schermo • pennello passa sullo schermo per righe, una riga alla volta • frequenza orizzontale (in MHz) e verticale (in Hz) – Dati caratteristici • frequenza di refresh (> 70 Hz quella orizzontale per evitare sfarfallii) • numero di pixel (punti) dello schermo (es.: 1024x768) • numero di colori contemporaneamente visualizzati – Frame buffer • memoria RAM veloce che contiene la rappresentazione binaria dei vari pixel (ovvero dei colori corrispondenti) • per visualizzare sullo schermo bisogna scrivere nel frame buffer • un convertitore digitale/analogico, con la frequenza opportuna, rinfresca in continuazione i vari pixel dello schermo sulla base dei dati del buffer • LCD (Liquid Crystal Display) 2000 Salvatore Orlando 15 6FDWROD • Alimentatore • Scheda madre, che contiene diversi chip e bus, e alloggiamenti per • • • • processore memoria (SIMM) schede per gestire video, audio, rete, dischi, ecc. (I/O) sempre maggiore integrazione (scheda non espandibili) • Memoria • DRAM, volative, composta di vari chip (SIMM) di dimensione sempre più grande • Processore • chip che contiene parte controllo+parte operativa con registri • cache (buffer di memoria veloce) • Dischi e relativi controller • • • • • piatti ricoperti di materiale magnetico con testina dotata di bobina elettromagnetica bobina memorizza informazioni digitali (0/1) Floppy: mylar, lenti, 1,44 MB - 200 MB (Zip) Hard: veloci, velocità di rotazione alta, diversi GB RAM (accesso da 5 a 100 nsec) - DISCHI (5-20 msec): 5 ordini di grandezza di differenza 2000 Salvatore Orlando 16 5HDOL]]D]LRQHGHOSURFHVVRUHHGHOODPHPRULD • I componenti elettronici del computer sono realizzati – con circuiti integrati (IC): • fili + transistor realizzati con processo di integrazione larghissimo su frammento di silicio (VLSI - Milioni di transistor su un singolo frammento) – Silicio • presente nella sabbia • è un semiconduttore • aggiungendo materiali al silicio attraverso processo chimico, il silicio diventa – transistor, conduttore, o isolante – Processo produttivo • Lingotto di silicio (15/30 cm diam.) • Wafer sottili ottenuti tagliando il lingotto • 10/20 processi produttivi tramite pattern e processi chimici ⇒ otteniamo diverse repliche dello stesso circuito rettangolare • Separiamo i vari circuiti e otteniamo i die • Collaudiamo i die • Inseriamo nei package i die funzionanti, collegando ai piedini del package ⇒ otteniamo i chip pronti per la consegna 2000 Salvatore Orlando 17