Classe III A • A.s. 2010 – 2011 • Sistemi di Elaborazione e Trasmissione dell’Informazione • 4 ore settimanali (2 laboratorio) • Docenti – Prof. Alberto Ferrari – Prof. … Programma Abacus • SISTEMI DI ELABORAZIONE E TRASMISSIONE DELL'INFORMAZIONE Finalità • L’area di interesse relativa al programma del terzo anno è a carattere tecnologico • E’ l'area dei sistemi per l'elaborazione (calcolatori) e la trasmissione (reti) delle informazioni, conosciuti soprattutto dal punto di vista dell'architettura. • La finalità dell'insegnamento è, per questo aspetto, quella di contribuire alla formazione di un adeguato bagaglio di precise conoscenze tecniche e di capacità operative per il futuro perito Obiettivi generali • • • • • Conoscere con un buon dettaglio l'implementazione fisica di diversi tipi di calcolatore e saperne dare una corretta descrizione astratta. Programmare sistemi a microprocessore con bus e interfacce standard. Riconoscere, analizzare e classificare le diverse architetture di un calcolatore. Conoscere i risultati e le linee di tendenza nel campo delle nuove architetture degli elaboratori. Conoscere i concetti di base relativi all'evoluzione e alla struttura dei sistemi operativi. Obiettivi specifici terzo anno • Conoscere sia le rappresentazioni formali che le strutture concrete di un sistema di elaborazione. • Progettare, sviluppare e collaudare semplici programmi nel linguaggio macchina e/o simbolico (assembly) di un microprocessore. • Saper utilizzare semplici ambienti e/o sistemi di sviluppo e debugging di programmi a basso livello. Contenuti terzo anno • Livelli fisici e virtuali di un sistema di elaborazione; • architetture viste dall'utente attraverso il linguaggio macchina; • rappresentazione delle informazioni, registri e memoria, formato e tipi di istruzioni, metodi di indirizzamento. • Programmazione Il linguaggio macchina o mnemonico (assembly); software di base per lo sviluppo di programmi a basso livello: assembler, linker e debugger; • sistemi di sviluppo con crossassemblatore. Laboratorio • Progettazione e realizzazione di semplici programmi in linguaggio mnemonico per capire e sfruttare l'architettura di un microprocessore. Internet: la Rete delle reti La struttura fisica di Internet Le linee di collegamento a Internet Indirizzi e protocolli HTTP e il World Wide Web La posta elettronica Mailing list e newsgroup Altri protocolli Il mondo elettronico Intranet ed Extranet Passato e futuro di Internet La struttura fisica e logica di un elaboratore • • • • • • • • • • La macchina universale Le componenti di un elaboratore Il processore La memoria centrale La RAM La ROM La memoria cache Le periferiche di Input/Output Le memorie di massa L'architettura di von Neumann Architetture • Macchine SISD. Modello Master/Slave, Bus, CPU, Timer, Memorie, Tipi di memorie ROM, RAM, SDRAM, spazi di indirizzamento, accesso alle memorie. A,B,C Bus, ciclo di bus, tipi di slot (ISA e PCI). CPU: ALU, program counter, fetch, decode, execute, microprogrammi, instruction set, pipeline e prefetching; architettura superscalare. Modelli CISC e RISC, clock di CPU e di scheda. Codice operativo e mnemonico. BIOS e inizializzazione della macchina. UD2-Microprocessore 8088-86 • Il sistema operativo MsDos e il BIOS. Inizializzazione PC e MsDos, POST, Files nascosti, PSP, Environment. Modelli COM e modelli EXE, caricamento in memoria. Comandi MsDos interni ed esterni. CPU 8088: storia, caratteristiche generali, piedinatura. L'organizzazione e descrizione generale (le memorie, i registri, i bus, ecc...). L'organizzazione della RAM e la rappresentazione dell'indirizzo in Segmento/Spiazzamento. I registri della CPU. Bus dati e bus indirizzi. Le linee di controllo della CPU. Il programma DEBUG e creazione di brevi files .COM. UD3-Assembler 8088-86 • Files .EXE e files .COM. Il prefisso di segmento. Ciclo di produzione codice assembler: assemblatori, linker. Analisi di un assemblatore virtuale. Metodi di indirizzamento per la CPU. Istruzioni per la definizione iniziale dei registri di segmento. Sintassi generale delle istruzioni. Definizione e dichiarazione dei dati. Istruzioni di trasferimento. Istruzioni per la gestione dello stack. Istruzioni di calcolo aritmetico e booleano. Istruzioni di confronto. Istruzioni di salto. Istruzioni per i cicli. Passaggio di parametri sullo stack con Cdecl. Variabili locali sullo stack. Le principali direttive all'assemblatore. Fasi di creazione del programma eseguibile: editing, linking, assemblaggio. Files INCLUDE. Librerie di codice. Le procedure: dichiarazione, chiamate e passaggio di parametri: cDecl, stack frame. Gestione delle principali interruzioni software. Macro costanti e di codice. Elementi di programmazione C: procedure con passaggio di parametri: convenzione del C, per Indirizzo, per Valore, per Riferimento. Notazioni, name spacing, macro.