Laurea Magistrale in Informatica - AA 2016/17 Docente G. Grossi. Lezione 3 Il modello di esecuzione CUDA (1)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Laurea Magistrale in Informatica - AA 2016/17 Docente G. Grossi. Lezione 3 Il modello di esecuzione CUDA (1)"

Transcript

1 Laurea Magistrale in Informatica - AA 2016/17 Docente G. Grossi Lezione 3 Il modello di esecuzione CUDA (1)

2 Array scalabile di Streaming Multiprocessor (SM): core CUDA (SP) Global/shared/texture/constant/ memory L1 e L2 caches per global memory Registri Unità load/store Unità per funzioni speciali sin, cos, exp Scheduler dei warp Funzionamento: Ogni SM supporta l esecuzione concorrente di centinaia di thread (la GPU migliaia) I blocchi di thread vengono ripartiti dallo scheduler sui vari SM, massimizzandone l impiego Tutti i thread di un blocco vengono eseguiti concorrentemente sull SM assegnato Numerosi blocchi vengono assegnati allo stesso SM poi rischedulati in base alle risorse disponibili all SM Pipelining al livello istruzione in ogni thread 2

3 Grid Device 3

4 ü Ogni thread viene eseguito su un cuda core ed ha un suo privato spazio di memoria per registri, chiamate di funzioni e variabili C automatiche ü Un thread block è un gruppo di thread eseguiti concorrentemente che può cooperare attraverso barriere di sincronizzazione ü Un thread block usa shared memory per la comunicazione interthread e condivisione dati ü Una grid è un array di thread block che eseguono tutti lo stesso kernel, legge e scrive in global memory e sincronizza le chiamate di kernel tra loro dipendenti ü Esecuzione: Viene mappata la gerarchia di thread nella gerarchia di processori sulla GPU La GPU esegue una o più kernel grid Uno streaming multiprocessor (SM) esegue uno più thread block I core e altre unità di esecuzione nello SM eseguono i thread Gli SM eseguono i thread a gruppi di 32 thread chiamati warp 4

5 ü Numero magico: warp = 32 thread (consecutivi) ü Tutti i thread in un warp eseguono in parallelo allo stesso tempo ü Ogni thread ha il suo program counter e register state, ed esegue l istruzione corrente su dati assegnati ü Ogni thread può seguire cammini distinti di esecuzione delle istruzioni (parallelismo a livello thread) ü I thread che compongono un warp iniziano assieme alla stesso indirizzo del programma, ma ognuno è libero di seguire path propri indipendentemente da altri thread, seguendo flussi distinti ü Architettura SIMT: Single Instruction Multiple Thread Una differenza chiave è che SIMD espone l intero set di dati (vettore) all istruzione che deve essere eseguita, mentre SIMT specifica il comportamento di esecuzione e branching di un singolo thread 5

6 ü I core sono organizzati in 16 SM, ognuno con 32 CUDA core (16*32= 512 core massimo) ü 6 interfacce di memoria DRAM a 64-bit (tot. 384-bit) GDDR5 che supportano fino un tot di 6 GB di global on-board memory ü Una interfaccia con l host che connette la GPU alla CPU tramite PCI Express bus ü GigaThread scheduler globale che distribuisce i blocchi di thread agli scheduler dei warp ü L2 cache da 768 KB, condivisa tra tutti i 16 SM ü Quanti cuda core nelle Tesla M2050 e Tesla M2090? 6

7 ü Ogni CUDA core contiene: fully pipelined integer arithmetic logic unit (ALU) una istruzione per ciclo di clock floating-point unit (FPU) - una istruzione per ciclo di clock Dispatcher port per i thread ü Unità Scheduler e dispatcher che schedulano i warp ü Shared memory, register file e L1 cache ü Ogni SM ha 16 unità load/store che permettono di calcolare indirizzi di source e destination per 16 thread (un half-warp) per ciclo di clock ü Unità speciali (SFUs) per funzioni come sine, cosine, square root, e interpolation (unaistruzione per thread per ciclo di clock) 7

8 ü I thread di ogni block assegnato a un SM sono suddivisi in warp ü Ogni SM contiene 2 warp scheduler e 2 instructiondispatch unit ü I 2 scheduler selezionano 2 warp (eseguiti simultaneamente) e distribuiscono un istruzione a ognuno dei 16 core o alle 16 unità load/store o alle 4 FPU ü L architettura Fermi (compute capability 2.x) può trattare simultaneamente 48 warp per SM, per un totale di 1536 thread alla volta residenti su un singolo SM Su FERMI si possono assegnare fino a 1536 thread ad ogni SM in non più di 8 blocchi per volta: Per es. 6 blocchi da 256 thread, 3 blocchi da 512 thread, oppure 8 da blocchi da 128 (inefficiente!) 8

9 ü Una caratteristica chiave di Fermi è che la memoria di 64 KB on-chip è configurabile a runtime: può essere ripartita tra shared memory e L1 cache ü Per molte applicazioni HPC la shared memory consente grandi prestazioni perché consente ai thread di un blocco di cooperare, facilita il riuso di dati onchip data e riduce il traffico off-chip ü CUDA provides a runtime API that can be used to adjust the amount of shared memory and L1 cache. Modifying ü Fermi supporta l esecuzione concorrente di kernel: kernel multipli lanciati dalla stessa applicazione sulla stessa GPU ü Meglio in generale un numero alto di piccoli kernel per un utilizzo completo della GPU ü Fermi consente fino a 16 kernel in esecuzione nello stesso tempo 9

10 Prospettiva logica: I blocchi di thread possono essere configurati con ID nelle 3 dimesioni: 1D, 2D o 3D Prospettiva hardware: Tutti i thread sono organizzati in una sola dimensione con un ID progressivo Per esempio, un blocco con 128 thread verrà suddiviso in 4 warp: warp0, warp1, warp2, warp3 Warp 0: thread 0, thread 1, thread 2,... thread 31 Warp 1: thread 32, thread 33, thread 34,... thread 63 Warp 2: thread 64, thread 65, thread 66,... thread 95 Warp 3: thread 96, thread 97, thread 98,... thread

11 Vista logica: un blocco di thread bidimensionale con 40 thread nella dimensione x e 2 thread nella dimensione y. Vista HW: verranno allocati 3 warp HW per il blocco, con un totale di 96 thread per supportarne 80 SW Nota che l ultimo semi-warp è inattivo e comunque consumano risorse anche quelli inattivi, registri, memoria, etc. Blocchi di thread: vista logica vs vista HW Dal punto di vista logico, un blocco di thread è una collezione di thread organizzati in 1D, 2D, o 3D Dal punto di vista hardware, un blocco di thread è una collezione 1D di warp. I thread in un blocco formano i warp a gruppi di 32 thread consecutivi alla volta 11

12 ü 15 streaming multiprocessors (SMs) ü Enhanced SMs ü 64-bit memory controller ü Dynamic Parallelism ü Hyper-Q ü Compute capability

13 SMX: 192 single-precision CUDA cores 64 double-precision units 32 special function units (SFU) 32 load/store units (LD/ST) 4 warp schedulers 8 instruction dispatchers 4 warps executed concurrently on a single SMX 64 warps per SM scheduled 2048 threads resident in a single SM at a time 64K register file size more partitions of on-chip memory between shared memory and L1 cache more than 1 TFLOP of peak double-precision Dynamic Parallelism Hyper-Q 13

14 ü Nuova feature introdotta nelle GPU Kepler ü Consente alla GPU di lanciare diminamicamente nuove grid da una grid in esecuzione ü Ogni kernel può lanciare un altro kernel e gestire dipendenze inter-kernel ü Gestire la sincronizzazione e lo scheduling dei task ü Elimina la necessità di comunicare con la CPU ü Rende più semplice creare e ottimizzare pattern di esecuzione ricorsivi e datadependent ü Senza il parallelismo dinamico l host si occupa di lanciare ogni kernel sulla GPU 14

15 ü Più connessioni hardware simultanee tra CPU e GPU ü Abilita più CPU core a lanciare kernel su una singola GPU ü Abilita i core di CPU ad eseguire più task simultaneamente sulla GPU ü Ci si aspetta di aumentare l utilizzo della GPU e ridurre l idle time della CPU ü Fermi GPUs usano una sola coda hardware di lavoro per passare i task dalla CPU alla GPU (un singolo task blocca tutti gli altri task della coda) ü Kepler Hyper-Q rimuove questa limitazione con 32 code di lavoro hardware tra host e GPU ü Hyper-Q attiva molta più concorrenza sulla GPU ü Massimizza l utilizzo della GPU incrementandone le performance in generale 15

16 ü NVIDIA il termine, compute capability, per descrivere la versione hardware degli acceleratori GPU Kepler class architecture is major version number 3 Fermi class architecture is major version number 2 Tesla class architecture is major version number 1 ü NB: la prima classe di GPU sviluppate da NVIDIA ha lo stesso nome Tesla dell intera famiglia di acceleratori GPU Tesla 16

17 17

18 HW Anno Modello Tesla 2006 GeForce 8800 GTX (G80) Fermi 2010 GeForce GTX 480 (GF100) Kepler 2012 GeForce GTX 480 (GF100) Maxwell 2014 GeForce GTX 980 (GM204) Pascal 2016 GeForce GTX 1080 (GP104) 18

19 Modello di esecuzione CUDA 19

20 Risponde a domande come: quanti SM sono disponili sul device? Quanti thread x ogni SM? Quanta memoria? ecc. Funzioni delle API runtime di CUDA ( Command-line utility nvidia-smi ( Segnatura-> int dev_count; cudaerror_t cudagetdevicecount(&dev_count); Ø Indaga il numero di device disponibili sul sistema Segnatura-> cudaerror_t cudagetdeviceproperties(cudadeviceprop* prop, int device); Ø Restituisce le proprietà del device nella struttura cudadeviceprop ESERCITAZIONE: Usando le API sopra descritte, interrogare i dispositivi presenti ed ottenere: Number of CUDA Capable device(s) Total amount of global memory Maximum number of threads per multiprocessor Maximum number of threads per block Maximum sizes of each dimension of a block Maximum sizes of each dimension of a grid Determinare quella che ha il massimo numero di Multiprocessors 20

21 Compilazione su lagrange: $ nvcc -arch=sm_20 checkdeviceinfor.cu Esecuzione: $ Detected 3 CUDA Capable device(s) Device 0: "Tesla M2090" CUDA Driver Version / Runtime Version 7.5 / 7.0 CUDA Capability Major/Minor version number: 2.0 Total amount of global memory: 5.25 GBytes ( bytes) GPU Clock rate: 1301 MHz (1.30 GHz) Memory Clock rate: 1848 Mhz Memory Bus Width: 384-bit L2 Cache Size: bytes Max Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536,65535), 3D=(2048,2048,2048) Max Layered Texture Size (dim) x layers 1D=(16384) x 2048, 2D=(16384,16384) x 2048 Total amount of constant memory: bytes Total amount of shared memory per block: bytes Total number of registers available per block: Warp size: 32 Maximum number of threads per multiprocessor: 1536 Maximum number of threads per block: 1024 Maximum sizes of each dimension of a block: 1024 x 1024 x 64 Maximum sizes of each dimension of a grid: x x Maximum memory pitch: bytes 21

22 Stabilire il massimo numero di processori (o qualsiasi atra proprietà) tra le schede esistenti (Es in Lagrange): Ottenere il numero di device Ciclo sui device per estrarre informazioni o attivare processi Ottenere informazioni circa il device Attivare il device per eseguire operazioni sullo stesso int numdevices = 0; cudagetdevicecount(&numdevices); if (numdevices > 1) { int maxmultiprocessors = 0, maxdevice = 0; for (int device=0; device<numdevices; device++) { cudadeviceprop props; cudagetdeviceproperties(&props, device); if (maxmultiprocessors < props.multiprocessorcount) { maxmultiprocessors = props.multiprocessorcount; maxdevice = device; } } cudasetdevice(maxdevice); } 22

23 Il command-line tool nvidia-smi permette di gestire e monitorare le GPU presenti $ nvidia-smi -L GPU 0: Tesla M2050 (UUID: GPU-e03071f3-6aa abed-3dbf96673cd2) GPU 1: Tesla M2090 (UUID: GPU-25b1e779-cd4a-1bd4-66cd-48d17d2405c3) GPU 2: Tesla M2090 (UUID: GPU-ad8ac2a f7c1-ec56dedaa17c) Per un report completo sul device 0 (MEMORY, UTILIZATION, ECC, TEMPERATURE, POWER, CLOCK, COMPUTE, PIDS, PERFORMANCE, SUPPORTED_CLOCKS, PAGE_RETIREMENT, ACCOUNTING) $ nvidia-smi -q -i 0 Filtrare le info sul device 1 $ nvidia-smi -q -i 1 -d UTILIZATION GPU 0000:11:00.0 Utilization Gpu : 0 % Memory : 0 % $ nvidia-smi -q -i 1 -d MEMORY GPU 0000:11:00.0 FB Memory Usage Total Used Free : 5375 MiB : 10 MiB : 5365 MiB 23

24 Scelte implementative: Come definire la grid? Quale mapping tra indici di thread e indici delle matrici A, B e C? Notare che le dimensioni rilevanti sono 2: numero n di righe della mat A e numero m di colonne della mat B (insieme sono anche le dimensioni finali di C) Quale attività assegnare ai thread? Possibili casi: i pattern ripetuti sono i prodotti e le somme di singole coppie di elementi (caso 1), il prodotto interno tra due vettori (caso 2), riga di A e colonna di B Caso 1: numero molto elevato di thread pari al numero prodotti n*m*k (granularità molto fine), poco lavoro del singolo thread e grande hoverhead Caso 2: numero ridotto di thread n*m (granularità meno fine), e attività di maggior peso per il singolo thread Morale se gli SM sono tutti impegnati (ragionevole numero di warp schedulati) quindi lavorano a pieno ritmo, non dobbaimo preoccuparci di effetture task sequenziali all interno del singolo thread... Anzi! 24

25 Un possibile approccio (caso 2): Trasferimento delle matrici A, B e allocazione di C nella memoria del device La grid deve coprire il numero di righe delle matrici A nella dimensione y e il numero di colonne della matrice B nella dimensione x Un thread si preoccupa di effettuare il prodotto riga-colonna della matrice Per ogni riga i e colonna j, il thread con indice i nella dimensione x e il thread con indice j nella dimensione y mediante un ciclo itera la somma dei prodotti che coinvolgono la riga e la colonna Salva la somma nella entry i,j della matrice risultato C e la trasferisce in memoria RAM della CPU 25

26 Passaggio argomenti: per valore o puntatori ottenuti da cudamalloc Mapping degli indici di thread su indici di riga e colonna della matrice risultato Ciclco su elementi di riga (Row*M+k) della mat A e colonna (k*m+col) della matb /* * Kernel per il prodotto di due matrici */ global void matrix_prod(float* A, float* B, float* C, int N, int M) { } // indici di riga e colonna int Row = blockidx.y * blockdim.y + threadidx.y; int Col = blockidx.x * blockdim.x + threadidx.x; // ogni thread calcola una entry della matrice prodotto if ((Row < N) && (Col < M)) { } float val = 0; Scrittura dei risultati in global memory del device for (int k = 0; k < M; k++) val += A[Row * M + k] * B[k * M + Col]; C[Row * M + Col] = val; Lettura dei dati in global memory del device 26

27 Profiling significa anlizzare le prestazioni del programma misurando: ü La complessità in spazio (memory) o in tempo dell algoritmo ü L uso di particolari istruzioni ü La frequenza e la durata delle chiamate a funzione Lo sviluppo di applicazioni HPC spesso implicano 2 passi principali: ü Sviluppare codice corretto ü Migliorare il codice per elevare le performance In CUDA: ü Una implementazione naïve del kernel in genere non dà alte prestazioni ü I tool di profiling aiutano a trovare bottleneck nel codice da rimuovere ü CUDA ripartisce le risorse di calcolo in un SM tra i blocchi di thread residenti e questo causa eccedere i limiti e impoverire l utilizzo della GPU ü CUDA fornisce un astrazione dell architettura hardware che consente il controllo diretto di thread e concorrenza: il profiling può aiutare a misurare, visualizzare e guidare l ottimizzazione 27

28 ü Specifiche: una matrice A in R n x n di tipo MQDB è composta da k blocchi B 1,,B k (0 k n) disposti sulla diagonale principale. Un esempio con k=3 è dato in figura. Se D={d 1,,d k } denota l'insieme delle dimensioni dei blocchi, allora deve valere: d i = n, pertanto una matrice siffatta è completamente descritta dalla coppia n,d. Vale inoltre che il prodotto di matrici con parametri n,d, è ancora una matrice dello stesso tipo ü Input: due matrici MQDB A e B di tipo float descritte da un intero n e un array d[k] ü Output: la matrice prodotto C = A B di tipo float ü Benchmark: è disponibile un generatore di istanze di MQDB casuali ottenute fissando la dimensione n della matrice e il numero di blocchi k (archivio: ) ü Test: per il test finale utilizzare 3 istanze casuali generate a caso con params: Seme s = 0, 1, 2 Dimensione matrice n = 1000, 5000, Numero blocchi k = 3, 5, 10 Progetto: kernel CUDA ottimizzato per il prodotto di matrici quadrate diagonali a blocchi Effettuare l analisi delle prestazioni al variare della taglia dei dati in ingresso e dei params di del kernel Usare nvprof per i tempi reali 28

29 ü Cuda malloc & copy: gestire con attenzione i puntatori all interno della struct mqdb ü Progettare un kernel adeguato al caso di matrici così strutturate ü Verificare configurazioni diverse delle grid ü Confronto con la funzione sequenziale su host ü Usare la profilazione come strumento di controllo del funzionamento ü Controllare chunk di memoria allocata $ devicequery Device 0: "Tesla M2090" CUDA Driver Version / Runtime Version 8.0 / 8.0 CUDA Capability Major/Minor version number: 2.0 Total amount of global memory: 5375 MBytes ( bytes)... 29

Introduzione al Many/Multi-core Computing

Introduzione al Many/Multi-core Computing Introduzione al Many/Multi-core Computing Sistemi Operativi e reti 6 giugno 2011 Parte I Architettura Classificazione fra architetture Flynn s taxonomy SISD Single instruction on Single Data- (es. architetture

Dettagli

Architettura CUDA Corso di sviluppo Nvidia CUDATM. Davide Barbieri

Architettura CUDA Corso di sviluppo Nvidia CUDATM. Davide Barbieri Architettura CUDA Corso di sviluppo Nvidia CUDATM Davide Barbieri Panoramica Lezione Modello Architetturale CUDA Modello di programmazione CUDA Hello World in CUDA Gestione degli errori Terminologia Host

Dettagli

Laboratorio Corso di sviluppo Nvidia CUDA TM. Davide Barbieri

Laboratorio Corso di sviluppo Nvidia CUDA TM. Davide Barbieri Laboratorio Corso di sviluppo Nvidia CUDA TM Davide Barbieri Librerie CUDA CUBLAS, CUSPARSE Applicazione CUDA CUDA Runtime Funzioni cuda*() CUDA Driver API Libreria dinamica nvcuda installata con i driver

Dettagli

Esercizi su CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono

Esercizi su CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono Esercizi su CUDA Algoritmi e Calcolo Parallelo Esercizio 1 Implementare in CUDA il prodotto fra due matrici C= AB A è una matrice Nx16 B è una matrice 16xM M ed N sono multipli interi di 16 A B C 16 N

Dettagli

Ottimizzazioni 1 Corso di sviluppo Nvidia CUDATM. Davide Barbieri

Ottimizzazioni 1 Corso di sviluppo Nvidia CUDATM. Davide Barbieri Ottimizzazioni 1 Corso di sviluppo Nvidia CUDATM Davide Barbieri Panoramica Lezione Principali versioni dell'hardware CUDA Tesla Fermi Accesso veloce alla memoria globale Accesso veloce alla memoria condivisa

Dettagli

Esercizi su CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono

Esercizi su CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono Esercizi su CUDA Algoritmi e Calcolo Parallelo Prodotto scalare q Implementare in cuda il prodotto scalare fra due array di float c = ~a ~b = X i a i b i " a e b sono array di uguali dimensioni e con N

Dettagli

GPGPU GPGPU. anni piu' recenti e' naturamente aumentata la versatilita' ed usabilita' delle GPU

GPGPU GPGPU. anni piu' recenti e' naturamente aumentata la versatilita' ed usabilita' delle GPU GPGPU GPGPU GPGPU Primi In (General Purpose computation using GPU): uso del processore delle schede grafice (GPU) per scopi differenti da quello tradizionale delle generazione di immagini 3D esperimenti

Dettagli

Cosa si intende per GPGPU? Il modello di programmazione di CUDA. GPU di precedente generazione. Storia delle GPU

Cosa si intende per GPGPU? Il modello di programmazione di CUDA. GPU di precedente generazione. Storia delle GPU Cosa si intende per GPGPU? Il modello di programmazione di CUDA Calcolo General Purpose su GPU (Graphic Processing Unit) in applicazioni differenti dalla grafica 3D tradizionale Le GPU sono usate come

Dettagli

Introduzione al GPU Compu4ng con CUDA. Francesco Caruso francesco.caruso@polimi.it

Introduzione al GPU Compu4ng con CUDA. Francesco Caruso francesco.caruso@polimi.it Introduzione al GPU Compu4ng con CUDA Francesco Caruso francesco.caruso@polimi.it Contenu4 Come tu>o ebbe inizio: Evoluzione dell HW e del SW per la grafica GPU Compu4ng Introduzione a CUDA 5/13/11 Francesco

Dettagli

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2 La CPU e la Memoria Sistemi e Tecnologie Informatiche 1 Struttura del computer Sistemi e Tecnologie Informatiche 2 1 I registri La memoria contiene sia i dati che le istruzioni Il contenuto dei registri

Dettagli

Macchina di Riferimento: argomenti

Macchina di Riferimento: argomenti Macchina di Riferimento: argomenti L'architettura di una macchina MIPS Organizzazione della memoria I registri della CPU L'esecuzione dei programmi Il ciclo fetch-execute Il simulatore SPIM 1 Architettura

Dettagli

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO: Bootstrap Bootstrap All accensione di un calcolatore vengono attivati programmi di diagnostica scritti nella ROM (Read Only Memory) che verificano l assenza di guasti Poi viene attivato il programma di

Dettagli

Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM. Davide Barbieri

Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM. Davide Barbieri Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM Davide Barbieri Contatti skype: davbar86 mail: davide.barbieri@ghostshark.it Panoramica corso Introduzione al mondo delle GPU Modello GPGPU Nvidia

Dettagli

Sistemi Operativi. Lezione 3 Processi e Thread

Sistemi Operativi. Lezione 3 Processi e Thread Lezione 3 Processi e Thread Introduzione Sino ai sistemi batch la CPU di un sistema svolgeva un attività, la portava a termine e solo allora avviava un altra attività Con l avvento della multiprogrammazione

Dettagli

Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1

Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1 SISTEMI DI INPUT/OUTPUT 10.1 Sistemi I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Stream Prestazioni 10.2 I/O Hardware

Dettagli

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it e 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC

Dettagli

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel SISTEMI DI INPUT/OUTPUT 10.1 Sistemi I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Stream Prestazioni 10.2 I/O Hardware

Dettagli

La memoria - tecnologie

La memoria - tecnologie Architettura degli Elaboratori e delle Reti Lezione 26 La memoria - tecnologie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 26 1/24 Indirizzi

Dettagli

Implementazione di linguaggi 2. CUDA, query su GPU. Dott Stefano Ghio. Dott Michele Bozzano. michele.bozzano@gmail.com. otacorp@gmail.

Implementazione di linguaggi 2. CUDA, query su GPU. Dott Stefano Ghio. Dott Michele Bozzano. michele.bozzano@gmail.com. otacorp@gmail. Implementazione di linguaggi 2 CUDA, query su GPU Dott Michele Bozzano michele.bozzano@gmail.com Dott Stefano Ghio otacorp@gmail.com GPGPU General purpose processing on the GPU Come dice il nome (Graphics

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale

Dettagli

Parte IV Architettura della CPU Central Processing Unit

Parte IV Architettura della CPU Central Processing Unit Parte IV Architettura della CPU Central Processing Unit IV.1 Struttura della CPU All interno di un processore si identificano in genere due parti principali: l unità di controllo e il data path (percorso

Dettagli

Il Sottosistema di Memoria

Il Sottosistema di Memoria Il Sottosistema di Memoria Classificazione delle memorie Funzionalità Memoria di sola lettura (ROM) Memoria di lettura/scrittura Tecnologia Memoria a semiconduttori Memoria magnetica Memoria ottica Modalità

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC

Dettagli

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1 GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di

Dettagli

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale Programmazione A.A. 2002-03 I Architettura dei Calcolatori ( Lezione V ) Componenti hardware e loro schema funzionale Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica

Dettagli

I THREAD O PROCESSI LEGGERI

I THREAD O PROCESSI LEGGERI I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo Prof. Carlo Rossi DEIS - Università di Bologna Tel: 051 2093020 email: crossi@deis.unibo.it Classificazione Processori

Dettagli

Come funzionano i computer

Come funzionano i computer Fluency Come funzionano i computer Capitolo 6 Cosa sanno fare Esecuzione deterministica istruzioni per elaborare dati Devono ricevere una serie di istruzioni da seguire Cosa non sanno fare Non hanno immaginazione

Dettagli

Capitolo 10 - Strutture

Capitolo 10 - Strutture 1 Capitolo 10 - Strutture Strutture In molte situazioni, una variabile non è sufficiente per descrivere un oggetto. Ad esempio, una posizione sul piano cartesiano è identificata da due coordinate, e la

Dettagli

La memoria - tecnologie

La memoria - tecnologie Architettura degli Elaboratori e delle Reti Lezione 26 La memoria - tecnologie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 26 1/24 Indirizzi

Dettagli

Sistemi a processori multipli

Sistemi a processori multipli Sistemi a processori multipli Sommario Classificazione e concetti di base Sistemi multi-processore Sistemi multi-computer (cluster) Sistemi distribuiti Obiettivo comune Risolvere problemi di dimensioni

Dettagli

Livelli del sottosistema di I/O

Livelli del sottosistema di I/O Input/Output 1 Livelli del sottosistema di I/O Software di I/O di livello utente Software di sistema indipendente dal dispositivo Driver dei dispositivi Gestori delle interruzioni Hardware Modo utente

Dettagli

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Cosa vedremo: Esecuzione di un programma Concetto di processo Interruzioni Sistemi monotasking e multitasking Time-sharing Tabella dei

Dettagli

Macchine Astratte. Luca Abeni. February 22, 2017

Macchine Astratte. Luca Abeni. February 22, 2017 Macchine Astratte February 22, 2017 Architettura dei Calcolatori - 1 Un computer è composto almeno da: Un processore (CPU) Esegue le istruzioni macchina Per fare questo, può muovere dati da/verso la memoria

Dettagli

Componenti di un sistema operativo

Componenti di un sistema operativo Componenti di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Componenti di un S.O. Gestione dei processi Gestione della memoria primaria Gestione della memoria secondaria

Dettagli

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico) CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico) - Dedicati Quelli dei primi sistemi operativi. La macchina viene utilizzata da un utente per volta che può eseguire un solo programma per volta.

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Come aumentare le prestazioni Cenni alle architetture avanzate

Come aumentare le prestazioni Cenni alle architetture avanzate Politecnico di Milano Come aumentare le prestazioni Cenni alle architetture avanzate Mariagiovanna Sami Richiamo: CPI CPI = (cicli di clock della CPU richiesti dall esecuzione di un programma)/ numero

Dettagli

Il Sottosistema di Memoria

Il Sottosistema di Memoria Il Sottosistema di Memoria Calcolatori Elettronici 1 Memoria RAM RAM: Random Access Memory Tempi di accesso indipendenti dalla posizione Statica o Dinamica Valutata in termini di Dimensione (di solito

Dettagli

Elementi di base del calcolatore

Elementi di base del calcolatore Elementi di base del calcolatore Registri: dispositivi elettronici capaci di memorizzare insiemi di bit (8, 16, 32, 64, ) Clock: segnale di sincronizzazione per tutto il sistema si misura in cicli/secondo

Dettagli

Componenti principali

Componenti principali Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria

Dettagli

Scopo della lezione. Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato

Scopo della lezione. Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato Scopo della lezione Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato Little endian e big endian Indirizzamento logico e fisico Comprendere la struttura del micro Von Neumann architecture

Dettagli

LA GESTIONE DELLA I/O

LA GESTIONE DELLA I/O LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono

Dettagli

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria

Dettagli

Sistemi e reti CPU Concetti di base

Sistemi e reti CPU Concetti di base Sistemi e reti CPU Concetti di base A cura dell Ing. Claudio Traini Cenni Storici 1971 il primo processore mai realizzato : Intel 4004 Progettato dal vicentino Federico Faggin 1 Cenni Storici 1976 Faggin

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore Architettura di un calcolatore Processore: CPU Componente elettronico costituito da minuscole componenti di silicio, chiamate CHIP. Esegue le istruzioni implementate nel SW, tramite una serie di operazioni

Dettagli

Modelli di programmazione parallela

Modelli di programmazione parallela Modelli di programmazione parallela Oggi sono comunemente utilizzati diversi modelli di programmazione parallela: Shared Memory Multi Thread Message Passing Data Parallel Tali modelli non sono specifici

Dettagli

Architettura dei calcolatori I parte Introduzione, CPU

Architettura dei calcolatori I parte Introduzione, CPU Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica ed Elementi di Statistica 3 c.f.u. Anno Accademico 2010/2011 Docente: ing. Salvatore Sorce Architettura dei calcolatori

Dettagli

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori rchitettura dei Calcolatori Giuseppe Pozzi Impianti di Elaborazione Facoltà di Ingegneria dell'informazione Politecnico di Milano giuseppe.pozzi@polimi.it - versione del 20 settembre 2002 - rchitettura

Dettagli

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo 31 Luglio - 4 Agosto 2017

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo 31 Luglio - 4 Agosto 2017 Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo 31 Luglio - 4 Agosto 2017 www.u4learn.it Alessandro Bruno Introduzione al calcolo parallelo Approcci per il calcolo parallelo Programmazione

Dettagli

Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP Laurea Specialistica in Ingegneria Informatica Laurea Specialistica in Ingegneria Elettronica e delle Telecomunicazioni Sistemi e Tecnologie per l'automazione LS HW per elaborazione digitale in automazione:

Dettagli

Introduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Introduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP Laurea Specialistica in Ingegneria Informatica Laurea Specialistica in Ingegneria Elettronica e delle Telecomunicazioni Sistemi e Tecnologie per l'automazione LS HW per elaborazione digitale in automazione:

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1

Dettagli

CUDA computing with the GPU

CUDA computing with the GPU CUDA computing with the GPU Federico Pedersini Università degli studi di Milano Dipartimento di scienze dell informazione DALab Digital Architectures Lab CUDA 1/49 Outline Introduzione CUDA hardware Programmazione

Dettagli

La gerarchia di memorie (2)

La gerarchia di memorie (2) La gerarchia di memorie (2) Architetture Avanzate dei Calcolatori Valeria Cardellini Migliorare le prestazioni delle cache Consideriamo la formula del tempo medio di accesso in memoria (AMAT) AMAT = hit

Dettagli

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Cos'è un calcolatore? Architettura dei calcolatori Esecutore automatico di algoritmi Macchina universale Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura

Dettagli

La memoria - tecnologie

La memoria - tecnologie Architettura degli Elaboratori e delle Reti Lezione 26 La memoria - tecnologie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/21 Sommario!

Dettagli

Sommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads

Sommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads Sommario Lezione 5 Processi e Threads Processi e Programmi Implementazione dei Processi Casi di Studio relativi a Processi Thread Casi di Studio relativi a Thread 5.2 Processi e Programmi Che cosa e un

Dettagli

Parte IV. Architettura della CPU Central Processing Unit

Parte IV. Architettura della CPU Central Processing Unit Parte IV Architettura della CPU Central Processing Unit 25/01/2010 Informatica Ingegneria Medica - Prof. Gregorio Cosentino 1 IV.1 Struttura della CPU All interno di un processore si identificano in genere

Dettagli

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche Device driver - gestori delle periferiche Struttura interna del sistema operativo Linux Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici Interagiscono con

Dettagli

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II

Dettagli

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse. Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,

Dettagli

La memoria - tecnologie

La memoria - tecnologie Architettura degli Elaboratori e delle Reti Lezione 26 La memoria - tecnologie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 26 1/25 Struttura

Dettagli

Introduzione al Multithreading

Introduzione al Multithreading Introduzione al Multithreading Claudia Calidonna Istituto di di Cibernetica C.N.R. Argomenti principali Parleremo di : Processi & Threads Operazioni sui threads ed eventuali confronti tra operazioni sui

Dettagli

I processi: concetti di base, context switch e scheduling

I processi: concetti di base, context switch e scheduling Corso di laurea in Ingegneria dell Informazione Indirizzo Informatica Reti e sistemi operativi I processi: concetti di base, context switch e scheduling Processo: definizione Processo (o Job): Entità attiva

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Elaborazione di Immagini e Suoni / Riconoscimento e Visioni Artificiali 12 c.f.u. Anno Accademico 2009/2010 Docente: ing. Salvatore

Dettagli

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1 Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1 1) Dato un diagramma di flusso quali sono le condizioni necessarie perché si possa costruire un programma corrispondente?

Dettagli

Struttura interna del sistema operativo Linux

Struttura interna del sistema operativo Linux Struttura interna del sistema operativo Linux 5. I device driver A cura di: Anna Antola Giuseppe Pozzi DEI, Politecnico di Milano anna.antola/giuseppe.pozzi@polimi.it -versione del 30 marzo 2004-1-04.-04

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come

Dettagli

Lez. 4 L hardware. Prof. Pasquale De Michele Gruppo 2

Lez. 4 L hardware. Prof. Pasquale De Michele Gruppo 2 Lez. 4 L hardware 1 Dott. Pasquale De Michele Dipartimento di Matematica e Applicazioni Università di Napoli Federico II Compl. Univ. Monte S.Angelo Via Cintia, I-80126, Napoli pasquale.demichele@unina.it

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come

Dettagli

Architetture Applicative Altri Esempi

Architetture Applicative Altri Esempi Architetture Applicative Altri Esempi Alessandro Martinelli alessandro.martinelli@unipv.it 15 Aprile 2014 Architetture Applicative Altri Esempi di Architetture Applicative Architetture con più Applicazioni

Dettagli

Lezione 22 La Memoria Interna (1)

Lezione 22 La Memoria Interna (1) Lezione 22 La Memoria Interna (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Dove siamo e dove stiamo andando La gerarchia

Dettagli

CUDA computing with the GPU

CUDA computing with the GPU CUDA computing with the GPU Federico Pedersini Università degli studi di Milano Dipartimento di scienze dell informazione DALab Digital Architectures Lab CUDA 1/48 Outline! Introduzione! CUDA hardware!

Dettagli

Il processore Pentium

Il processore Pentium Caratteristiche principali (I) Architettura interna a 32 bit Address bus a 32 bit: si possono indirizzare fino a 4 GB di memoria fisica Data bus a 64 bit (si tratta in pratica di 2 data bus a 32 bit in

Dettagli

Struttura di un elaboratore

Struttura di un elaboratore Struttura di un elaboratore Fondamenti di Informatica 1 Modello architetturale di un computer Ogni computer è costituito da un insieme di blocchi funzionali tra loro interconnessi da sistemi di comunicazioni,

Dettagli

Input/Output (Cap. 7, Stallings)

Input/Output (Cap. 7, Stallings) Input/Output (Cap. 7, Stallings) Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi Tutti più lenti della CPU e della RAM Necessità di avere moduli

Dettagli

Corso di Fondamenti di Informatica Elementi di Architettura

Corso di Fondamenti di Informatica Elementi di Architettura di Cassino e del Lazio Meridionale Corso di Informatica Elementi di Architettura Anno Accademico 2016/2017 Francesco Tortorella Modello di von Neumann Bus di sistema CPU Memoria Centrale Interfaccia Periferica

Dettagli

Componenti e connessioni. Capitolo 3

Componenti e connessioni. Capitolo 3 Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura

Dettagli

Gestione dinamica della memoria

Gestione dinamica della memoria Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni

Dettagli

Esame di INFORMATICA Lezione 4

Esame di INFORMATICA Lezione 4 Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Il sottosistema di memorizzazione (memoria) contiene dati + istruzioni, inseriti inizialmente tramite

Dettagli

Il Sistema Operativo Concorrenza e Grafi di precedenza

Il Sistema Operativo Concorrenza e Grafi di precedenza ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Elaborazione concorrente Elaborazione sequenziale Elaborazione concorrente Elaborazione parallela Grafi di Precedenza Grafi di

Dettagli

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06. SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario

Dettagli

Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo. Daniele Loiacono

Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo. Daniele Loiacono Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo Riferimenti q Questo materiale deriva dalle slide del prof. Lanzi per il corso di Informatica B, A.A. 2009/2010 q Il materiale presente in

Dettagli

Indice generale. 1 Il calcolatore: astrazioni. 2 Le istruzioni: il linguaggio. e tecnologia 1. dei calcolatori 57

Indice generale. 1 Il calcolatore: astrazioni. 2 Le istruzioni: il linguaggio. e tecnologia 1. dei calcolatori 57 I Indice generale Prefazione viii 1 Il calcolatore: astrazioni e tecnologia 1 1.1 Introduzione 1 Tipi di calcolatore e loro caratteristiche 2 Cosa si può imparare da questo libro 5 1.2 Cosa c è dietro

Dettagli

Architettura degli elaboratori - 2 -

Architettura degli elaboratori - 2 - Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori e gerarchie di memoria Marco Tarini Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 1 Martedì 11-10-2016 1 Introduzione Un sistema operativo è un software

Dettagli

Il computer P R O F. L O R E N Z O P A R I S I

Il computer P R O F. L O R E N Z O P A R I S I Il computer P R O F. L O R E N Z O P A R I S I Un po di storia Le prime macchine per il calcolo automatico risalgono al 1940. Il calcolatore più potente di quel periodo era l ENIAC, in grado di svolgere

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori a.a. 2013/14 appello straordinario, 13 aprile 2015 Riportare nome, cognome, numero di matricola e corso A/B Domanda 1 Si consideri la seguente gerarchia di memoria memoria

Dettagli

Sistemi Operativi. Sottosistema di I/O

Sistemi Operativi. Sottosistema di I/O Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2011-12 Sommario L hardware di I/O Struttura Interazione tra computer e controllori

Dettagli

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! MACCHINA DI VON NEUMANN! UNITÀ FUNZIONALI fondamentali! Processore

Dettagli

La memoria cache. Lab di Calcolatori

La memoria cache. Lab di Calcolatori La memoria cache 1 Gap delle prestazioni DRAM - CPU 1000 CPU- DRAM Gap CPU Proc 60%/yr. (2X/1.5yr) 100 10 ProcessorMemory Performance Gap: (grows 50% / year) D R A M DRAM9%/yr.(2X/10 yrs) 1 1980 1981 1982

Dettagli

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1 1) Il bus in un computer trasporta a) solo dati b) solo istruzioni c) sia dati sia istruzioni 2) In una sequenza

Dettagli

Università degli Studi di Milano - Corso Architettura II Prof. Borghese Appello del

Università degli Studi di Milano - Corso Architettura II Prof. Borghese Appello del Università degli Studi di Milano - Corso Architettura II Prof. Borghese Appello del 24.02.2016 Cognome e nome: Matricola: 1. [7] Data la CPU N. 1, specificare il contenuto di tutte le linee (dati e controllo).

Dettagli

Parte IV. Architettura della CPU Central Processing Unit

Parte IV. Architettura della CPU Central Processing Unit Parte IV Architettura della CPU Central Processing Unit 12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 1 IV.1 Struttura della CPU All interno di un processore si identificano in genere

Dettagli