Dettaglio modulo

ARCHITETTURA 1

MF0200

Insegnamento
ARCHITETTURA 1
Codice
MF0200
Anno Accademico
2023/2024
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
000 - CORSO GENERICO
Responsabile didattico
Docenti
CFU
6
Ore di lezione
48
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB - Obbligatoria
Anno
1
Periodo
Primo Semestre
Sede
VERCELLI
Lingua insegnamento
Italiano
Contenuti
Descrizione dell'architettura, strutturata a livelli, di un moderno sistema di elaborazione, delle sue principali componenti hardware e della sua interfaccia verso i livelli software eseguiti su tale hardware. Questo è il primo di due moduli integrati in un unico corso. Esso pone le basi introducendo: la rappresentazione binaria di tutti i tipi di dati (numeri, testo, immagini, grandezze analogiche), i componenti base dell’hardware di un calcolatore e in particolare la struttura interna del processore, l’interazione tra il processore e la memoria centrale e tra il processore e i dispositivi di input/output
Testi di riferimento
A.S. Tanenbaum, T.Austin: "Architettura dei Calcolatori: un approccio strutturale", VI Edizione, Pearson Education Italia, 2013.
Obiettivi formativi
Il primo obiettivo del corso è far conoscere le basi della codifica binaria dell’informazione numerica, testuale e delle immagini e le basi dell’elaborazione di dati codificati in binario attraverso funzioni logiche, definite per mezzo dell’algebra di Boole, e realizzabili concretamente sotto forma di circuiti logici.
Un altro obiettivo è quello di far conoscere i principali componenti di un sistema di calcolo, far comprendere i principi di base del loro funzionamento e delle interazioni, sottolineando come il rapido sviluppo di nuove tecnologie abbia influito sull’evoluzione dell’organizzazione dei sistemi di calcolo. Ciò contribuisce a sviluppare l’abilità di confrontare le caratteristiche di diverse organizzazioni di sistemi di calcolo (o di componenti di un sistema di calcolo) e valutarne le differenze in termini di costo e prestazioni.
Un altro importante concetto introdotto nel corso è la strutturazione stratificata dei sistemi di calcolo: si vuole sottolineare che tale struttura deriva dall’applicazione del metodo di scomposizione di un problema complesso in sotto-problemi più semplici. Per far comprendere in termini più concreti tale concetto, esso viene esemplificato attraverso l’architettura di un semplice processore (il MIC1, non reale ma realistico): le semplici operazioni che l’architettura di base è in grado di eseguire permettono di realizzare un linguaggio macchina più evoluto (IJVM) tramite la microprogrammazione, questo secondo argomento viene affrontato nel secondo modulo.
Prerequisiti
nessuno
Metodi didattici
Gli argomenti trattati nel corso sono esposti prevalentemente tramite lezioni frontali che potranno essere integrate con alcune esercitazioni in laboratorio (allo scopo di osservare la rappresentazione in memoria di diversi tipi di dato, di disegnare e simulare circuiti logici combinatori e sequenziali, di sperimentare l’esecuzione di semplici programmi in linguaggio macchina tramite un emulatore).
Durante le lezioni viene usato uno strumento (Wooclap) che permette di interagire con gli studenti tramite quiz anonimi e interattivi accessibili tramite smartphone. In questo modo è possibile stimolare la riflessione e rilevare eventuali criticità nel processo di apprendimento.
Per ogni argomento trattato vengono proposti esercizi o quiz formativi. Vengono inoltre proposti incontri a piccoli gruppi alla presenza di un tutor, per svolgere e discutere esercizi (simili a quelli proposti nelle prove scritte).
Altre informazioni
Sulla piattaforma DIR sono disponibili: la copia elettronica delle slide utilizzate a lezione, esempi di testi d’esame, quiz di autovalutazione, informazioni generali sul corso e avvisi relativi allo svolgimento del corso e sugli esami.
Tramite un forum specifico del corso vengono pubblicate informazioni generali sul corso, avvisi relativi allo svolgimento del corso e informazioni riguardanti gli esami. Inoltre sono attivi forum dove gli studenti possono porre domande sugli argomenti del corso e sugli esercizi proposti, e rispondere a domande pubblicate da altri studenti.
Modalità di verifica dell'apprendimento
L’esame può essere scritto oppure orale (di norma è scritto nella prima sessione d’esame dopo lo svolgimento del corso, orale nelle altre sessioni con un basso numero di iscritti). Nel caso il compito sia scritto può essere richiesta una integrazione orale (per esempio nel caso di compito quasi sufficiente per raggiungere la sufficienza piena). Possono essere proposte prove in itinere (come supporto al superamento dell’esame finale) che possono anche assumere la forma di esercizi da svolgere in laboratorio. La prova comprende da quattro a sei domande che possono essere articolate in sottopunti e comprendono anche esercizi di applicazione delle nozioni apprese ad esempi concreti. La prova è superata se si raggiunge un punteggio di almeno il 60% dei punti totalizzabili sull’insieme di domande.
Ciascuno dei due moduli del corso integrato ha un suo esame ed è necessario conseguire un esito sufficiente in ciascun modulo per superare l’esame complessivo. Il voto finale è stabilito in modo collegiale dai docenti dei due moduli, tenuto conto dell’esito ottenuto in ciascun modulo.
Programma esteso
Breve panoramica sulla evoluzione storica dei sistemi di calcolo (dalla Macchina Analitica di Charles Babbage ai giorni nostri). Codifica dell’informazione: codifica binaria dei numeri interi con e senza segno. Trasformazione dalla rappresentazione binaria alla rappresentazione ottale ed esadecimale e viceversa. Operazioni aritmetiche con numeri binari. Codifica dei numeri frazionari: virgola fissa e virgola mobile (standard IEEE 754). Operazioni aritmetiche con numeri in virgola mobile. Codifica del testo (ASCII, UNICODE, UTF-8). Codici ridondanti per rilevazione e correzione di errori. Codifica delle immagini (mappa di bit, profondità e risoluzione). Algebra di Boole. Porte logiche AND, OR, NOT, NAND e NOR. Dalle funzioni logiche ai circuiti combinatori (tavole di verità, espressioni in forma normale Somma di Prodotti e Prodotto di Somme, semplificazione applicando le leggi dell’algebra o tramite mappe di Karnaugh). Esempi di circuiti: Decoder, Multiplexer, Half Adder, Full Adder, ALU, ecc. Circuiti sequenziali: Latch, Flip-Flop, registri e memorie. Principali componenti di un calcolatore (CPU, Memoria RAM, Dischi magnetici, RAID, Dischi ottici, BUS, e varie periferiche. Cenni sui principi di funzionamento. CPU: ciclo di fetch-decode-execute. Processori CISC e RISC. CPU con struttura a pipeline (cenni). Introduzione all’architettura MIC1 (si veda il libro di testo).
Risultati di apprendimento attesi
Descrivere l’evoluzione storica dei sistemi di calcolo sottolineando il legame tra evoluzione tecnologica ed evoluzione dell’organizzazione di tali sistemi. Spiegare la rappresentazione posizionale in base r di un numero (intero o frazionario). Descrivere e saper applicare il procedimento per la trasformazione di un numero frazionario senza segno da base 10 a base 2, 8 o 16 e viceversa, e il procedimento per ottenere la codifica binaria in modulo e segno o in complemento a due di un numero intero con segno. Saper eseguire operazioni aritmetiche con numeri binari. Descrivere e saper applicare il procedimento per la trasformazione di un numero frazionario nella sua rappresentazione in virgola mobile secondo lo standard IEEE 754. Enunciare e spiegare le principali leggi dell’algebra di Boole. Saper rappresentare una funzione booleana in varie forme (forme normali SP e PS e semplificate tramite operazioni algebriche o con le mappe di Karnaugh). Saper ricavare un circuito combinatorio corrispondente ad una data espressione booleana. Saper descrivere quale funzione booleana realizza un dato circuito. Saper riconoscere alcuni circuiti logici combinatori e sequenziali di base e descrivere la funzione che realizzano. Descrivere i principali componenti di un sistema di calcolo, indicarne le caratteristiche salienti, i meccanismi di funzionamento e le modalità di interazione. In particolare descrivere le componenti della CPU e il ciclo fetch-decode-execute, la differenza tra architetture CISC e RISC e l’idea alla base delle architetture a pipeline. Descrivere il linguaggio delle microistruzioni del processore MIC1 (istruzioni sia in forma mnemonica che in forma binaria) realizzare alcuni semplici microprogrammi e simularne l’esecuzione.
Acquisire la capacità di aggiornarsi su aspetti specifici e temi più avanzati dell’architettura dei sistemi di calcolo, in particolare facendo ricorso a risorse disponibili on-line.
Ultimo aggiornamento:09-09-2026 00:14:31