Architettura dei sistemi di elaborazione

Docente: Alessandro Simonetta

Comunicazioni

APPELLI SETTEMBRE

02-08-2021 08:37
Si comunica agli studenti che gli appelli si continuano a svolgere su TEAMS con la modalità scritto + orale. Lo scritto verrà saltato se sono presenti un numero di studenti tale da consentire a tutti gli esami orali nella giornata.
Le date fissate per settembre sono il 6 e il 27.
L'orale avverà alla conclusione dello scritto.
Per qualsiasi informazione utilizzate TEAMS o l'email, Buone vacanze a tutti!
 

* ** LIBRO DISPONIBILE ** *

19-02-2021 11:38
Presso la Libreria Universitalia è disponibile il libro
di esercitazione per l'esame di Architettura dei Sistemi di Elaborazione: "Introduzione alla programmazione su ARM"
 
Il prezzo per i miei studenti è di 10 euro se acquistato presso la libreria, mentre se spedito 15 euro inserendo il codice coupon ARM2020.
 
Attenzione se non si inserisce il codice di sconto lo si acquista a prezzo pieno (15+5 euro).
 
Il testo può essere acquistato con 18App ma il costo in questo caso è il prezzo di copertina (15 euro).
 
 
 
Universitalia 
Via di Passo Lombardo, 421 - 00133 Roma
lun - ven -18,30 orario continuato
sab 9 - 12-30
Tel. 06 20.26.342 

***** A V V I S O ***** I M P O R T A N T E *******

06-11-2020 12:16

Possono iscriversi all'appello di ARCHITETTURA DEI SISTEMI DI ELABORAZIONE esclusivamente gli studenti che si trovano in almeno una delle seguenti condizioni:

1) hanno avuto un punteggio >=95 all'esame di maturità;

2) hanno superato il TEST di INGRESSO;

3) hanno superato uno tra i seguenti esami:

- Matematica discreta

- Analisi Matematica

- Geometria e algebra.

In caso contrario, non sarà possibile iscriversi ad alcuna prova.

L'iscrizione all'appello da parte del candidato corrisponde all'assunzione di responsabilità di trovarsi in una delle condizioni sovra elencate (1, 2 o 3) e nella consapevolezza delle responsabilità penali cui egli può andare incontro in caso di dichiarazioni false, ai sensi e per gli effetti degli articoli 46, 47 e 76 del D.P.R. 28 dicembre 2000 n. 445. Oltre a conseguenze di natura amministrativa relativamente al percorso di studi.


TEAMS dedicato a Introduzione alla Programmazione su ARM

17-10-2020 19:03

Per rendere la didattica più proficua, anche in relazione alla preparazione che emerge dai questionari, ho intenzione di lanciare due sfide ai miei studenti che hanno acquistato una copia del libro di esercizi.

 

Le gare avverranno su:

https://teams.microsoft.com/l/team/19%3a896dc33462c549b9b67a15273877333f%40thread.tacv2/conversations?groupId=7a872b12-1f11-40ad-8fb7-0db2b9655617&tenantId=24c5be2a-d764-40c5-9975-82d08ae47d0e

 

GARE:

 

1) TROVA L'ERRORE: la prima sfida è dedicata a chi troverà più errori nel libro e verificati/certificati dal sottoscritto; lo studente con più errori rilevati riceverà un bonus in punti per l'esame finale;

 

2) TROVA L'AMBIENTE: la seconda sfida riguarda una competizione sull'ambiente più semplice e user-friendly rispetto a quelli indicati nel libro di esercizi e su questa pagina web. Lo studente che troverà un ambiente alternativo e pienamente funzionante con tutti gli esempi del libro sarà premiato.

 

La premiazione avverrà sul gruppo team e consentirà di acquisire punteggio utile ai fini della valutazione dell'esame.


COMPILATORI ARM

09-10-2020 11:58

VisUAL

https://salmanarif.bitbucket.io/visual/index.html

 

CPUlator (online!)

https://cpulator.01xz.net/?sys=arm

 

Professional

 

KEIL uVision (MDK for STM32F0, STM32G0, and STM32L0)

https://www2.keil.com/stmicroelectronics-stm32/mdk

 

GNU

https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads


QUESTIONARIO STUDENTI

08-10-2020 17:30

Da oggi troverete un Questionario per raccogliere i dati degli studenti del corso e per capire quali sono le vostre indicazioni rispetto alla possibilità di svolgere il corso senza la presenza. Inoltre ho aggiunto anche la dichiarazione necessaria per la presenza in aula.

Il tempo di compilazione è di 2 minuti circa, quindi vi prego di compilarlo al più presto così domani possiamo vedere i risultati. Grazie

 

https://forms.office.com/Pages/ResponsePage.aspx?id=Kr7FJGTXxUCZdYLQiuR9Dt_4ZWXTW0tIsxeOBofMG1hUNkpPNUtYRTFLV1hRU1hVM082UEZDMUlHUi4u


LINK A TEAMS DEL CORSO A.A. 2020/21

07-10-2020 13:03

Questo è il TEAM del corso di Architetture dei Sistemi di Elaborazione, dove saranno trasmesse le lezioni.


AUTOVALUTAZIONE ESAME

15-09-2020 14:55

 

ARCHITETTURE DI CALCOLATORI

 

1) Il teorema del campionamento assicura che l'approssimazione discreta di un segnale analogico a banda limitata, è senza perdita di informazione utile se... 

2) La macchina di von Neumann è composta da? 

3) Quanti byte ci sono in 1 KB di memoria? 

4) Cosa sono il Program Counter e l'Instruction Register? 

5) Da quanti passaggi si compone il ciclo fetch-decode-execute ? 

6) Quali sono i principi di progettazione per i computer moderni? 

7) Un processore SIMD è costituito da? 

8) Per calcolare la distanza di Hamming tra due parole, quale operazione si deve utilizzare? 

9) In un hard disk le prestazioni dipendono da? 

10) In un CDROM un settore è costituito da quanti frame? Cosa contengono? 

11) Quali sono la principale differenza tra DVD e CD? 

12) Per quali valori di A e B l'uguaglianza A+B = A B è verificata? 

13) Quando si può utilizzare un multiplexer per realizzare una qualsiasi funzione logica? 

14) Un decoder è un circuito combinatorio che può essere utilizzato per? 

15) In un circuito digitale è possibile collegare due uscite insieme? 

16) Elencare le caratteristiche delle ROM 

17) Per incrementare la larghezza di banda di un bus occorre? 

18) In un Pentium 4 i principali segnali di risposta del bus sono? 

19) Descrivere lo schema adottato dalla CPU UltraSPARC III per la gestione della cache 

20) Descrivere l'integrato 8051 

21) Descrivere il memory-mapped I/O 

 

 

SISTEMI OPERATIVI

 

22) Quali funzioni ha un Sistema Operativo? 

23) In un Sistema Operativo le principali astrazioni sono? 

24) Un processo è un concetto chiave presente in ogni Sistema Operativo, si può definire come? 

25) I File in UNIX sono protetti con tre bit, a che servono? 

26) In UNIX ogni processo ha uno spazio di memoria assegnato diviso in tre segmenti, quali? 

27) Che cos'è un Sistema monolitico? 

28) In quale circostanza sono creati nuovi processi? E in quale altra termina un processo? 

29) Quali sono gli stati di un processo? 

30) Quali informazioni non possono essere condivise tra processi? 

31) Quando accade una corsa critica? 

32) In un ambiente concorrente per evitare le corse critiche si possono definire delle condizioni, quali? 

33) In quale circostanza è conveniente avviare lo scheduling? 

34) Gli algoritmi di scheduling posso essere divisi in due categorie, quali? 

35) Quali sono gli algoritmi di scheduling nei sistemi batch? 

36) Supponendo di disporre dei seguenti tempi di esecuzione T0, T1, T2 e T3 nell'algoritmo shortest process next con tecnica di aging, quale sarà la stima per T4? 

37) Per consentire a più applicazioni di essere in memoria allo stesso tempo senza interferire devono essere risolti due problemi, quali? 

38) Quali sono i metodi per tenere traccia dell'utilizzo della memoria? 

39) Qual è la struttura di una riga della tabella delle pagine? 

40) Nell'algoritmo Not Recently Used (NRU) la classe 0 è.. 

41) Quando il sistema operativo non è coinvolto con la paginazione? 

42) I programmatori sanno che tecnica di gestione della memoria (paginazione o segmentazione) è utilizzata? 

43) Perché è stata inventata la paginazione? 

44) Perché è stata inventata la segmentazione? 

45) Quali sono le strutture di file più comuni? 

46) Qual è la corretta sequenza dell'intestazione all'interno di un file eseguibile binario nelle prime versioni di UNIX? 

47) Qual è la chiamata di sistema UNIX per leggere gli attributi di un file? 

48) Qual è il separatore per i file utilizzato in MULTICS? 

49) In un sistema di gestione del file system, qual è la voce speciale che permette di riferirsi alla directory corrente? 

50) In UNIX, qual è la chiamata che permette di creare una directory vuota? 

51) In un programma C, i parametri passati al programma principale, main(), sono passati attraverso? 

52) Nel layout del file system, il master boot record è? 

53) Nel layout del file system, il blocco di boot è fatto di.. 

54) Che cos'è l'i-node in un sistema UNIX? 

55) I cambiamenti nella tecnologia spingono l'evoluzione dei file system: le CPU diventano più veloci; i dischi, le memorie e le cache sono sempre più grandi e economiche. Il collo di bottiglia diventa così il tempo di ricerca su disco (per quelli meccanici). Quali file system sono stati progettati per ridurre questo problema? 

56) Quali sono le principali categorie di dispositivi di I/O? 

57) Quali sono gli svantaggi del port-mapped I/O? 

58) Quali sono gli svantaggi del memory-mapped I/O? 

59) Quali sono le 4 proprietà di un interrupt preciso? 

60) Quali sono i principali obiettivi del software di I/O? 

61) Quali sono le tecniche di gestione degli I/O? 

62) Quali sono i livelli software per la gestione dell'I/O? 

63) Quali sono i fattori che compromettono il tempo necessario a leggere o scrivere un blocco del disco? 

64) Quali sono le modalità di funzionamento di un clock programmabile? 

65) In un computer con un clock di 10 GHz che distanza possono percorrere i segnali elettrici? 

66) Per incrementare drasticamente le performance di un calcolatore che architetture occorre progettare? 

67) In un'architettura UMA con rete di commutazione a più stadi di tipo omega con n CPU, n memorie and log2n stadi, con n/2 switch per stadio, complessivamente di quanti switch abbiamo bisogno? 

68) Quali sono le caratteristiche chiave di una macchina con accesso non uniforme alla memoria? 

69) Quali sono gli approcci per il Sistema Operativo adottati dai multiprocessori? 

70) Qual è un potenziali problema in un algoritmo di scheduling a condivisione del tempo su un multiprocessore? 

71) Che cosa si intende per diametro in un multicomputer? 

72) Qual è il vantaggio di utilizzare un'architettura di multicomputer ad ipercubo? 

73) Quali sono i vantaggi della virtualizzazione? 

 

 

ESERCIZI

 

74) convertire in binario i numeri in base 10: 255, 127, 15 , 1023, 4095 

75) convertire in ottale i numeri in base 10: 255, 127, 15 , 1023, 4095 

76) convertire in esadecimale i numeri in base 10: 255, 127, 15 , 1023, 4095 

77) convertire in decimale i numeri esadecimali: FF, FFE, 1A09, 2001, 1FA 

78) convertire in decimale i numeri ottali: 77, 775, 1702, 2001, 17679) convertire in decimale i numeri binari: 1111, 1000, 10, 11001, 11111111, 10001111, 111111111111, 111111111110

 

ESERCIZI IN ASSEMBLY

Suggerimento: descrivere prototipo, pre-condizioni e post-condizioni prima dell'algoritmo (preferibilmente in DNS)

 

79) Dati X e Y interi calcolare X/Y senza utilizzare l'istruzione DIV

89) Dati X e Y interi calcolare X*Y senza utilizzare l'istruzione MULTICS

90) Dato un array di interi calcolare la media dei suoi elementi

91) Dato un array di interi calcolare il massimo dei suoi elementi

92) Dato un array di interi calcolare il minimo dei suoi elementi

93) Dati due array di interi calcolare l'AND delle celle in medesima posizione e l'OR dei risultati

94) Dati due array di interi calcolare l'OR delle celle in medesima posizione e l'AND dei risultati

95) Dato un valore intero X calcolare il suo fattoriale

96) Dati X e Y interi calcolare X^Y 

 

 

 

 

 

 


Lezioni

830-10-2020

ESERCITAZIONE 

- algoritmo di merge con utilizzo dell'algebra di Boole

- utilizzo del mux come risolutore di circuiti

- trasformazioni nel dominio di Boole

- utilizzo degli operatori universali

726-10-2020

ESERCITAZIONE

- Codici di correzione di errore

- Algebra di Boole

- Utilizzo dell'algebra di Boole per la risolzone di problemi (es. Banca)

 

623-10-2020

ARCHITETTURA DEI CALCOLATORI

IL LIVELLO LOGICO DIGITALE (PARTE 2/3, ADC CAP.3)

- Circuiti logici digitali elementari 

- - circuiti Integrati 

- - circuiti combinatori: multiplexer, decoder, comparatori e PLA 

- - Circuiti aritmetici: shifter, adder, ALU 

- Clock.

- MEMORIA

- - Flip-flop

- - Registri

- - Organizzazione della Memoria

- - Buffer

- - Chip di memoria

- Random Access Memory

- Memorie Non-volatili

- - ROM, PROM, EPROM, EEPROM

- Chip di CPU

- BUS

- - Ampiezza del bus

- - clock del bus

- - Bus sincroni/asincroni

- - Arbitraggio del bus

- - Interrupt handling

 

519-10-2020

ARCHITETTURA DEI CALCOLATORI
IL LIVELLO LOGICO DIGITALE (PARTE 1/3 - ADC CAP.3 e Cap.1 Informazione Automatica e Java)
- Il livello logico digitale
- - algebra di Boole
- - le trasformazioni nel dominio di Boole

416-10-2020

ARCHITETTURA DEI CALCOLATORI (ADC CAP.2)

MEMORIA SECONDARIA

- Gerarchie di memorie

- Dischi magnetici

- Floppy disk

- Dischi IDE

- Dischi SCSI

- RAID

- Dischi a stato solido

- CD-ROM

- CD-Registrabili

- CD-Riscrivibili

- DVD

 

DISPOSITIVI DI INPUT/OUTPUT (ADC CAP.2)

- Il bus

- Direct Memory Access

- Tastiere

- Monitor LCD

- RAM della scheda video (VRAM)

- Dispositivi di puntamento

- Stampanti

- Apparati di Telecomunicazioni

- Codifica dei caratteri

 

312-10-2020

ARCHITETTURA DEI CALCOLATORI (ADC CAP.2)
PROCESSORI
- Organizzazione della CPU.
- Esecuzione istruzione.
- RISC contro CISC.
- Principi di progettazione dei calcolatori.
- Parallelismo a livello di istruzione.
- Parallelismo a livello di processore.
MEMORIA PRINCIPALE
- Bit.
- Sistemi di numerazione.
- Indirizzi di memoria.
- Ordinamento dei byte.
- Codici di correzione di errore.
- Memoria cache.

209-10-2020

ARCHITETTURA DEI CALCOLATORI 
INTRODUZIONE (ADC Cap.1) 
- Dominio digitale e analogico 

- Sistemi di numerazione 
- Approccio strutturale 
- Linguaggi, livelli e macchine virtuali 
- Pietre miliari nell architettura dei computer 
- Tipologie di computer 
- Storia della famiglia Intel 
- Unità metriche

105-10-2020

PRESENTAZIONE DEL CORSO 
- Orario del corso 
- Iscrizione al corso: scheda informativa 
- Sito web di riferimento 
- Materiale didattico 
- Programma di esame 
- Modalità di esame 
- Nozioni utili per il corso 
- Modalità di svolgimento della lezione 
- Modalità di studio 
- In caso di assenza 
- Andamenti e trend 
- Questioni aperte e domande 


Materiale didattico

Errata corrige del libro "Introduzione alla programmazione su ARM"

Informazioni

Anno accademico2020-2021
Crediti6
SettoreING-INF/05
Anno1
Semestre1
PropedeuticitàNessuna

Programma

INTRODUZIONE SULLE ARCHITETTURE (Cap 1 – Architettura dei calcolatori)

o Dominio digitale e analogico

o Linguaggi, livelli e macchine virtuali

o Evoluzione delle architetture di computer

o Approccio strutturale

o Pietre miliari nell’architettura dei computer

o Tipologie di computer

o Unità metriche

 

PROCESSORI E MEMORIA PRINCIPALE (Cap 2 – Architettura dei calcolatori)

o PROCESSORI

- Organizzazione della CPU

- Esecuzione dell’istruzione

- RISC contro CISC

- Principi di progettazione dei calcolatori

- Parallelismo a livello di istruzione

- Parallelismo a livello di processore

 

o MEMORIA PRINCIPALE

- Bit

- Sistemi di numerazione

- Indirizzi di memoria

- Ordinamento dei byte

- Codici di correzione di errore

- Memoria cache

- Memoria principale

 

o MEMORIA SECONDARIA 

- Gerarchie di memorie

- Dischi magnetici

- Floppy disk

- Dischi IDE

- Dischi SCSI

- RAID

- Dischi a stato solido

- CD-ROM

- CD-Registrabili

- CD-Riscrivibili

- DVD

 

o INPUT/OUTPUT

- Il bus

- Direct Memory Access (DMA)

- Tastiere

- Monitor LCD

- RAM della scheda video (VRAM)

- Dispositivi di puntamento

- Stampanti

- Apparati di Telecomunicazioni

- Codifica dei caratteri

 

LIVELLO LOGICO DIGITALE (Cap 3 – Architettura dei calcolatori)

o Algebra di Boole

o Trasformazioni nel dominio di Boole

o Circuiti logici digitali elementari

o Circuiti Integrati

o CIRCUITI COMBINATORI

- Multiplexer

- Decoder

- Comparatori

- Programmable Logic Arrays (PLA)

- Shifter

- Adder

- Arithmetic Logic Units (ALU)

o Clock

o MEMORIA

- Flip-flop

- Registri

- Organizzazione della Memoria

- Buffer

- Chip di memoria

- Random Access Memory

- Memorie Non-volatili (ROM, PROM, EPROM, EEPROM)

o Chip di CPU

o BUS

- Ampiezza del bus

- clock del bus

- Bus sincroni/asincroni

- Arbitraggio del bus

- Interrupt handling

o ESEMPI DI CPU

- Intel Pentium 4

- Intel Core i7

- UltraSPARC III

- Intel 8051

o ESEMPI DI BUS

- Bus ISA

- Bus PCI

- PCI Express

- USB

o INTERFACCE

- Interfacce di I/O

- Interfacce PIO

- Decodifica dell’indirizzo

 

IL LIVELLO DI MICROARCHITETTURA (Cap 4 – Architettura dei calcolatori)

o Un esempio di microarchitettura

- Il modello di esecuzione

- Data path (o percorso dati)

- Formato delle microinstruzioni

- Microarchitettura Mic-1

o Esempio di ISA: IJVM

- Lo stack

- Il modello della memoria 

- Insieme delle istruzioni

 

IL LIVELLO DI MACROARCHITETTURA (Cap 5 – Architettura dei calcolatori)

o Overview del livello ISA

o Tipi di dati

o Formati di istruzioni

o Modalità di indirizzamento

o Tipi di istruzioni

o Controllo del flusso

o Architetture Intel IA-32 e IA64

 

IL LIVELLO DEL LINGUAGGIO ASSEMBLATIVO (Cap 7 – Architettura dei calcolatori)

o Introduzione al linguaggio assemblativo

o Le macroistruzioni

o Il processo di assemblaggio

o Linker e loader 

 

INTRODUZIONE AI SISTEMI OPERATIVI (Cap 1 – I moderni sistemi operativi)

o Che cos’è un sistema operativo? 

o Storia dei sistemi operativi

o Panoramica dei SO

o Concetti di base dei SO

o Le chiamate di sistema

o Struttura di un sistema operativo

o Introduzione al linguaggio C

 

PROCESSI E THREAD (Cap 2 – I moderni sistemi operativi)

o PROCESSI

o THREAD

o COMUNICAZIONI TRA PROCESSI

o SCHEDULING

 

GESTIONE DELLA MEMORIA (Cap 3 – I moderni sistemi operativi)

o NESSUNA ASTRAZIONE DI MEMORIA.

o LO SPAZIO DI INDIRIZAMENTO

o MEMORIA VIRTUALE

o ALGORITMI DI SOSTITUZIONE DELLE PAGINE

o PROBLEMATICHE DI PROGETTAZIONE DEI SISTEMI DI PAGING

o ASPETTI REALIZZATIVI

o SEGMENTAZIONE

 

• FILE SYSTEM (Cap 4 – I moderni sistemi operativi)

o FILE 

o DIRECTORY

o REALIZZAZIONE DEL FILE SYSTEM

o REALIZZAZIONE DEL FILE SYSTEM

 

• INPUT/OUTPUT (Cap 5 – I moderni sistemi operativi)

o PRINCIPI HARDWARE

o PRINCIPI DEL SOFTWARE

o LIVELLI SOFTWARE

o DISCHI

o CLOCK

 

• ARCHITETTURE PER IL CALCOLO PARALLELO (Cap 8 – I moderni sistemi operativi e Cap 8 – I moderni sistemi operativi)

o INTRODUZIONE

o PARALLELISMO NEL CHIP

o COPROCESSORI

o MULTIPROCESSORI

o MULTICOMPUTER

o VIRTUALIZZAZIONE


Testi di riferimento

1) Simonetta Alessandro

"introduzione alla programmazione su ARM"

Universitalia prezzo 10€

(studenti del corso) 

Spedizione prezzo 15€

(codice coupon ARM2020)

 

https://shop.unipass.it/home

/6039-alessandro-simonetta

-introduzione-alla-programmazione

-su-arm-circuiti-architettura-

e-sistema-operativo-dei-

calcolatori-elett

 

ronici.html

 

2)Tanenbaum Andrew S., Architettura dei calcolatori: Un approccio strutturale, 6a Ed., Pearson Education, 2013

3) Tanenbaum Andrew S, Bos H. I moderni sistemi operativi. Ediz. MyLab. 4a Edizione Settembre 2019

 


Ricevimento studenti

al termine delle lezioni o concordato via email


Modalità di esame

scritto e orale