mail unicampaniaunicampania webcerca

    Salvatore VENTICINQUE

    Insegnamento di ARCHITETTURA DEI CALCOLATORI

    Corso di laurea magistrale in INGEGNERIA INFORMATICA

    SSD: ING-INF/05

    CFU: 9,00

    ORE PER UNITÀ DIDATTICA: 72,00

    Periodo di Erogazione: Secondo Semestre

    Italiano

    Lingua di insegnamento

    ITALIANO

    Contenuti

    Tecniche di progetto di processori e memorie. Principali architetture di processori RISC, CISC e di microcontrollori.Principali tecniche per la gestione dell’I/O.Principali tecniche per la gestione della memoria. Soluzioni tecnologiche e evoluzione delle tecnologie di calcolo per aumentare le prestazioni degli elaboratori. Il linguaggio VHDL. Progetto di semplici componenti hardware in VHDL. Utilizzo di un compilatore e simulatore VHDL.

    Testi di riferimento

    Struttura e Progetto dei Calcolatori, Patterson- Hennessy, Zanichelli
    ◦ MIPs: pp. 74-108; pp. 234-232
    • Andrew S. Tanenbaum, "Structured Computer Organization - Fourth Edition", Prentice-Hall (anche in versione italiana)
    • Yu-cheng Liu, Glenn A. Gibson, "Microcomputer Systems: The 8086/8088 Family", Prentice-Hall
    ◦ Gestione interruzioni, PIC, DMA: Cap. 9
    • Bruno Fadini, Ugo De Carlini, "Macchine per l'elaborazione delle informazioni", Liguori Editore
    ◦ Macchine Aritmetiche: pp.
    • Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, "Linux Device Drivers;O'Reillly
    ◦ Sviluppo drivers in linux, cap 1, 3,10

    Obiettivi formativi

    Acquisizione di conoscenze avanzate riguardo la progettazione dei moderni calcolatori elettronici.
    Comprensione delle tecniche fondamentali per la progettazione di memorie, processori e sistemi di I/O per calcolatori general purpose e microcontrollori. Conoscenza delle tecnologie per la realizzazione di componenti hardware. Comprensione di specifiche soluzioni architetturali e della loro organizzazione hardware basate su processori ARM, X86, ATML., PIC.
    Conoscenza del linguaggio VHDL e capacità di utilizzo del linguaggio e di strumenti per la progettazione e simulazione di componenti digitali fondamentali.

    Prerequisiti

    Reti logiche. Fondamenti di programmazione.

    Metodologie didattiche

    Lezioni frontali, esercitazioni al pc in aula e in laboratorio.

    Metodi di valutazione

    Progetto, sviluppo e simulazione VHDL al calcolatore.
    Discussione orale.

    Altre informazioni

    Disponibili all'indirizzo:
    https://elearning.unicampania.it

    Programma del corso

    Linguaggio VHDL: Modello di programmazione. Modello di simulazione. Elementi di sintassi. Approccio data flow. Approccio composizionale. Approccio procedurale. Esercitazioni in Laboratorio. Utilizzo del compilatore ghdl e del visualizzatore gtkwave.

    I BUS: Architettura sincrona e asincrone. Arbitraggio centralizzato e distribuito. Il PCI. Il bus AMBA. Il bus USB

    Macchine aritmetiche: Addizionatori. Ottimizzazione con circuito di lookhaed. Sottrattori. Addizionatore modulo diminuito. Moltiplicatore. Realizzazione parallela e iterativa. Moltiplicatore veloce. Divisore con restoring. Soluzione senza restoring. Implementazioni VHDL.

    Le Memorie: Gerarchie di memorie. La memoria cache. Principi di località. Tecniche di mapping. Algoritmi di sostituzione dei blocchi. Tecniche per la gestione della coerenza con la Ram. Esempio Pentium IV e PowerPC G4. Analisi prestazionale e criteri di dimensionamento. Simulazione con Dinero IV. Memorie dinamiche: la RAM. Rilevazione e correzione degli errori. Modello a blocchi e approccio composizionale.

    IO: Soluzione Memory Mapped e Isolated Io. Polling e Interruzioni. Deasy chain. Il PIC. Il PIC nell'architettura Intel. I drivers. Sviluppo di una ISR in un emulatore DOS e sua associazione a una interruzione utilizzando il PIC. Sviluppo di drivers periferiche a caratteri in LINUX. Sviluppo di una ISR in LINUX. Il DMA.

    Il Processore: Architetture CISC e RISC. Logica camblata e microprogrammata. Architettura e Organizzazione del MIPS a singolo ciclo e multiciclo. La Pipeline. Tecniche di gestione degli hazards. Interruzioni precise. Confronto con altre architetture. Architetture Intel. Architetture superscalari. Vettore delle collisioni. Esecuzione fuori ordine. Cenni sul parallelismo nei moderni processori (multithreading, multicore, gpu).

    Sistemi paralleli: Architetture UMA/NUMA. Tassonomia di Flynn : SIMD,MIMD,SISD. Gestione della coerenza della cache in architetture parallele. Protocolli Snoopy. Protocollo MESI.

    Sistemi embedded: Architettura ARM. Microcontrollori. Architettura Microchip. Soluzione Arduino basata su ATMega. Modelli di programmazione. Interfacciamento a USART. Interfacciamento SPI. Esempi di utilizzo.

    English

    Teaching language

    ITALIAN

    Contents

    Processor and memory design techniques. Main RISC and CISC architectures and microcontrollers. I/O management techniques.Memory architecture and organization techniques. Key solution and evolution of computing technologies to increase computer performance. VHDL language. Design of simple hardware components in VHDL. Utilization of a VHDL compiler and VHDL simulator. Implementation and build of simple linux drivers.

    Textbook and course materials

    Struttura e Progetto dei Calcolatori, Patterson- Hennessy, Zanichelli
    ◦ MIPs: pp. 74-108; pp. 234-232
    • Andrew S. Tanenbaum, "Structured Computer Organization - Fourth Edition", Prentice-Hall (anche in versione italiana)
    • Yu-cheng Liu, Glenn A. Gibson, "Microcomputer Systems: The 8086/8088 Family", Prentice-Hall
    ◦ Gestione interruzioni, PIC, DMA: Cap. 9
    • Bruno Fadini, Ugo De Carlini, "Macchine per l'elaborazione delle informazioni", Liguori Editore
    ◦ Macchine Aritmetiche: pp.
    • Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, "Linux Device Drivers;O'Reillly
    ◦ Sviluppo drivers in linux, cap 1, 3,10

    Course objectives

    Acquiring advanced knowledge about the design of modern electronic computers.
    Understanding the basic techniques for the design of memory, processors and I/O systems for general purpose computers and micro-controllers. Knowledge of technologies for the implementation of hardware components. Understanding specific architectural solutions and their hardware organization based on ARM, X86, ATML, PIC processors.
    Knowledge of VHDL language and ability to use language and tools for designing and simulating fundamental digital components.

    Prerequisites

    Logic networks. Fundamental of programming.

    Teaching methods

    Theoretical lessons in presence and exercises in classroom and in laboratory by PC.

    Evaluation methods

    VHDL design, development and test.
    Oral presentation.

    Other information

    Available at:
    https://elearning.unicampania.it

    Course Syllabus

    VHDL Language: Design and programming model. Simulation model. Syntax. Compositional, procedural and data-flow design approaches. Exercises by PC in classroom and in laboratory. Ghdl compiler and gtkwave viewer.

    BUSes: Synchronous and asynchronous architectures. Centralized and distributed arbiter. PCI, AMBA and USB implementations.

    Arithmetic Machines: Adders. Lookahead circuit. Subtractors. Diminished modulo adder. Multiplier. Parallel and iterative implementations of multiplier. Fast multiplier. Divider with and without restoring. VHDL implementations.

    Memories: Memory hierarchy. Cache memories. Space and time locality. Mapping techniques. Block replacement policies. Cache-RAM coherence management. Pentium IV e PowerPC G4 examples. Performance analysis and design criteria. Simulation by Dinero IV. Dynamic memories: RAM. Flash memories. Errors detection and correction. Blocks model and compositional approach.

    IO devices: Memory mapped and Isolated I/O architectures. Polling and Interrupts. Deasy chain. Priority Interrupt Controller (PIC). PIC Intel. Drivers. ISR development by a DOS emulator and interrupt attachment programming PICs. Drivers for character devices in LINUX. ISR development example in LINUX. Direct Memory ACCES (DMA). USART.

    Processors: CISC and RISC architecture. Microprogrammed control unit and hardwired control unit. MIPS architecture and organization, single cycle and multi-cycles. Pipelines. Handling of hazards. Comparisong with Intel architectures: i8086, I386, Penthium, Penthium4. Introduction to parallelism in modern processors (multithreading, multicore, gpu).

    Parallel systems: UMA/NUMA arrchitectures. Flynn tassonomy: SIMD,MIMD,SISD. Snoopy caches. MESI protocol.

    Embedded systems: ARM architecture. Micro-controllers: Microchip and ATMega architectures. Programming modesl. Example of USART and SPI interface. Example of usage in real applications.

    facebook logoinstagram buttonyoutube logotypelinkedin logotype