Architettura dei sistemi di elaborazione

Docente: Alessandro Simonetta

Comunicazioni

ISCRIZIONE SU TEAMS

05-03-2024 08:41

Per poter partecipare al corso è necessario iscriversi al TEAMS:

https://teams.microsoft.com/l/team/19%3Av4KsLOWJWyvFLIOEx3w1alYhD8s1adBUxpSYAkmeZ581%40thread.tacv2/conversations?groupId=721c93fc-bf24-400a-9808-405e5a942133&tenantId=24c5be2a-d764-40c5-9975-82d08ae47d0e


LINK SOFTWARE UTILI

06-11-2023 15:10

TOOL PER ALGEBRA DI BOOLE

https://www.dcode.fr/boolean-expressions-calculator

 

 

AMBIENTE DI PROGETTAZIONE DNS 

https://structorizer.fisch.lu/

 

COMPILATORI ARM

 

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


Domande per l'autovalutazione

03-11-2023 19:14

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 


Libro su ARM

03-11-2023 19:11

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).

 

https://www.universitaliasrl.it/editore-universitalia/2492-introduzione-alla-programmazione-su-arm-9788832934267.html


Lezioni

104-03-2024

Lezione di benvenuto:

-Orario del corso

-Sito web di riferimento

-Il gruppo TEAMS

-Materiale didattico

-Strumenti software

-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


Materiale didattico

Informazioni

Anno accademico2023-2024
Crediti6
SettoreING-INF/05
Anno1
Semestre2
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

 

MEMORIA PRINCIPALE

- Bit

- Sistemi di numerazione

- Indirizzi di memoria

- Ordinamento dei byte

- Codici di correzione di errore

- Memoria cache

- Memoria principale

 

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

 

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) 

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

FILE SYSTEM (Cap 4 – I moderni sistemi operativi)

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

 

 

• 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 A., Introduzione alla programmazione su ARM

Universitalia prezzo 10€ (studenti del corso) 

 

Spedizione prezzo 15€ (codice coupon ARM2020)

 

https://www.universitaliasrl.it/editore-universitalia/2492-introduzione-alla-programmazione-su-arm-9788832934267.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 appuntamento concordato via TEAMS


Modalità di esame

Prova preselettiva scritta con FORMS e successivamente Orale

 

Gli studenti dovranno avere con sé un PC o un qualsiasi altro apparato mobile di schermo adeguato (no cellulare sì tablet). Non sarà possibile caricare gli apparati. Chi verrà con dispositivo scarico non potrà eseguire la prova che avrà una durata di 30 minuti. Tali strumenti saranno collegati in rete (prerequisito per svolgere l'esame) attraverso la rete Universitaria o quella dati di un gestore telefonico. Durante la prova dovrete avere il browser collegato con la finestra del questionario FORM che vi verrà condiviso dal professore.