Vai al contenuto principale
Oggetto:
Oggetto:

Architettura degli Elaboratori

Oggetto:

Computer Architecture

Oggetto:

Anno accademico 2023/2024

Codice dell'attività didattica
INF0326
Docenti
Rossano Gaeta (Corso A)
Maurizio Lucenteforte (Corso A Turno 1 + Corso A Turno 2)
Claudio Schifanella (Corso C + Corso C Turno 1 + Corso C Turno 2)
Idilio Drago (Corso B + Corso B Turno 1 + Corso B Turno 2)
Corso di studi
[008707] Laurea in Informatica
Anno
1° anno
Periodo didattico
Secondo semestre
Tipologia
Di base
Crediti/Valenza
6 CFU - Numero di ore - Number of hours: 32 (in aula) + 20 (in laboratorio)
SSD dell'attività didattica
INF/01 - informatica
Modalità di erogazione
Tradizionale
Lingua di insegnamento
Italiano
Modalità di frequenza
Facoltativa
Tipologia d'esame
Scritto più orale obbligatorio
Prerequisiti
Conoscenza di base di programmazione imperativa, capacità di progettare semplici algoritmi. Insegnamenti propedeutici (forniscono le competenze attese in ingresso):
  • Programmazione I e Laboratorio (I semestre)
  • Fondamenti dell'Informatica (I semestre)
Knowledge of basic programming concepts, some coding attitude. Preparatory Courses (providing the expected entry skills):
  • Computer Programming I and Laboratory (first semester)
  • Computer Science Foundations (first semester)
Oggetto:

Sommario insegnamento

Oggetto:

Obiettivi formativi

L’insegnamento si propone di fornire alle studentesse e agli studenti:

  • la conoscenza dell’organizzazione hardware degli elaboratori, attraverso la nozione di gerarchie di macchine virtuali
  • la comprensione delle funzioni svolte dall’hardware e utilizzate dai sistemi operativi
  • le nozioni di base per la comprensione del processo di traduzione da linguaggi ad alto livello a linguaggio macchina

L'insegnamento è supportato da un laboratorio, finalizzato alla programmazione utilizzando un linguaggio assemblativo composto da un insieme di istruzioni appartenente allo standard RISC-V.

Insegnare le architetture degli elaboratori fa parte degli obiettivi formativi specifici del CdS in Informatica (L31), in particolare è tra quelli relativi all'area informatica di base.

 

The course aims to provide the student with the knowledge of the:

  • the hardware organization of digital computers
  • functions realized by hardware and exploited by opertating systems
  • basic ideas supporting the translation of high-level programming languages to machine-level languages

The course includes a laboratory in which students are presented with assembly-level programming techniques. Programming exercises are performed using a subset of the instruction set architecture specified in the RISC-V standard.

Learning computer architectures is part of the learning objectives of the Computer Science course (L31), in particular composing the basic computer science topics.

 

Oggetto:

Risultati dell'apprendimento attesi

Al termine dell’insegnamento le studentesse e gli studenti sarano in grado di:

  • Conoscere le relazioni tra linguaggi ad alto livello (e.g., C e Java) ed il linguaggio macchina
  • Conoscere le tecniche di traduzione in linguaggio macchina e del collegamento (linking/loading)
  • Analizzare i componenti digitali che sono alla base dell’architettura dei moderni calcolatori
  • Sviluppare piccoli programmi in un linguaggio assemblativo 

At the end of the course, the students will be able to:

  • Understand the relationship between high-level languages (e.g., C and Java) and the machine-level language
  • Understand the techniques used for translating programs into machine language and for linking/loading programs
  • Analyze the digital components that underlie modern computer architectures
  • Develop small programs in assembly language 
Oggetto:

Modalità di insegnamento

L’insegnamento è diviso in una parte di teoria e una di laboratorio. Per la parte di teoria sono previste 32 ore di lezioni frontali. Per la parte di laboratorio sono previste 20 ore di attività in laboratorio in cui si svolgono esercizi e approfondimenti sugli argomenti del corso, in particolare sulla programmazione in linguaggio assemblativo. La frequenza è facoltativa, consigliata, e la prova finale sarà uguale per frequentanti e non.

 

The teaching is divided into theory and laboratory. For the theory part, 32 hours of lectures are scheduled. For the laboratory part, 20 hours of activities are scheduled, in which exercises on the topics of the course are carried out, particularly on assembly language programming. Attendance is optional but recommended, and the final exam will be the same for all students.

Oggetto:

Modalità di verifica dell'apprendimento

L’esame consiste di prove scritte e una prova orale con voto finale espresso in trentesimi (con possibilità di lode). Le prove sono articolate in più parti:

  • una prova di ammissione (8 punti) finalizzata a verificare l’acquisizione delle competenze elementari
  • due prove relative agli argomenti di teoria (14 punti) e di laboratorio (10 punti)

Tutte le parti dell’esame devono essere superate e contribuiscono a determinare il voto finale. Le domande della prova di ammissione, che possono essere a risposta aperta oppure a risposta chiusa, sono verificabili in modo automatico.

Le domande di laboratorio vertono sugli argomenti trattati nelle lezioni di laboratorio, in particolare la programmazione nel linguaggio assemblativo del processore RISC-V, e sono svolte (e verificate) con l'assistenza di compilatori e simulatori usati in laboratorio. Le studentesse e gli studenti devono dimostrare la capacità di sviluppare codice assembly corretto, sia dal punto di vista grammaticale che algoritmico.

Le domande di teoria (esame scritto e/o orale) possono essere a risposta aperta oppure a risposta chiusa. Le domande a risposta aperta possono richiedere l’enunciazione e la descrizione di proprietà o di tecniche viste a lezione. Possono altresì richiedere l’applicazione della teoria a particolari esempi. Con queste domande si intende valutare la comprensione dei principi visti a lezione, la capacità di enunciarli con l’uso appropriato di un linguaggio scientifico e la capacità di applicarli a casi pratici.

Tutte le prove si svolgeranno in presenza nelle aule e nei laboratori didattici dell'Università.

 

The exam consists of written and oral tests with max score equals to 30 (with the possibility of honors). The tests are divided into several parts:

  • an admission test (8 points) aimed at verifying the acquisition of basic skills
  • two tests on the topics of theory (14 points) and laboratory (10 points)

All parts of the exam must be passed and contribute to determining the final grade. The questions in the admission test are automatically verified.

The laboratory questions focus on the topics covered in the laboratory lessons, particularly on programming in the assembly language of the RISC-V, and are carried out (and verified) with the assistance of compilers and simulators used in the laboratory. Students must demonstrate the ability to develop correct assembly code, both grammatically and algorithmically.

The theory questions (written and/or oral) can be open-ended or multiple-choice. Open-ended questions may require the enunciation and the description of properties or techniques covered in the lessons. They may also require the application of theory to specific examples. These questions are intended to assess the understanding of the principles covered in the lessons, the ability to enunciate them with the appropriate use of scientific language, and the ability to apply them to practical cases.

All tests will take place in the classrooms and teaching laboratories of the University.

Oggetto:

Programma

Teoria (4 CFU - 32 ore)

  • Calcolatori: astrazioni e tecnologia
  • Instruction Set Architecture (ISA)
    • RISC-V ISA
    • Bit, byte, parola, operandi dell'hardware e gli indirizzi
    • Rappresentazione delle istruzioni nel calcolatore
    • Traduzione e avvio di un programma (assembler, linker, loader)
    • L'aritmetica in virgola mobile nel RISC-V
  • Il processore RISC-V
    • Introduzione di base del RISC-V
    • Unità aritmetica e logica, registri
    • Metodologia di temporizzazione
    • Realizzazione di un'unità di elaborazione
    • Uno schema semplice di implementazione
  • Bus e I/O
    • I tipi di bus e l'arbitraggio
    • I/O programmato con busy waiting (pooling)
    • I/O controllato dall'interrupt
    • Direct Memory Access
    • Il meccanismo di interruzione del RISC-V
  • Gerarchia delle memorie
    • Organizzazione delle memorie, località temporale e spaziale
    • Tecnologie delle memorie
    • Principi base e prestazioni delle memorie cache

Laboratorio (2 CFU - 20 ore)

  • RISC-V ISA e linguaggio assemblativo
  • Operandi allocati in memoria, indirizzi e registri
  • Operazioni logiche
  • Istruzioni condizionali - if-then-else e cicli
  • Supporto hardware alle procedure - registri, stack e heap
  • Compilazione e traduzione dei programmi
  • Simulazione di una ALU

Lectures (4 CFU - 32 hours)

  • Introduction to computer abstractions and technology
  • Instruction Set Architecture (ISA)
    • The RISC-V ISA
    • Operands of the RISC-V ISA, bits, bytes, words, memory operations and addresses
    • Representing instructions
    • Language translation and execution (assembler, linker, loader)
    • RISC-V fixed- and floating-point operations
  • RISC-V processors
    • Introduction to RISC-V
    • Arithmetic logic unit and registers
    • Timing methodology
    • Building a datapath
    • A simple implementation scheme
  • Bus and I/O
    • Bus types and the arbiters
    • Programmed I/O, busy-wait, pooling
    • Interrupts
    • Direct Memory Access
    • RISC-V exception mechanisms
  • Memory hierarchy
    • Main memory organization, temporal and spatial locality
    • Memory technologies
    • Cache memories and performance

Laboratory (2 CFU - 20 hours)

  • RISC-V ISA and assembly programming
  • Operands: Memory addresses, memory content and registers
  • Logical operations
  • Instructions for making decisions - if-then-else and loops
  • Subroutine call and return - procedures and registers, stack and heap
  • Compilation and translation of programs
  • Simulating an ALU

 

Testi consigliati e bibliografia



Oggetto:
Libro
Titolo:  
Struttura e progetto dei calcolatori - Progettare con RISC-V
Anno pubblicazione:  
2019
Editore:  
Zanichelli
Autore:  
David A Patterson e John L Hennessy
Note testo:  
Edizione italiana a cura di Alberto Borghese
Obbligatorio:  
Si


Oggetto:
Ultimo aggiornamento: 11/09/2023 08:41
Location: https://laurea.informatica.unito.it/robots.html
Non cliccare qui!