Caratteristiche del processore Intel Xeon Phi Knights Landing

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Caratteristiche del processore Intel Xeon Phi Knights Landing"

Transcript

1 Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Calcolatori elettronici I Caratteristiche del processore Intel Xeon Phi Knights Landing Anno Accademico 2016/2017 Candidato: Giuseppina Tuoro matr. N

2 A chi ha sempre creduto in me.

3 Indice Indice... III Introduzione... 4 Capitolo 1: La famiglia Intel Xeon Phi Il progetto Larrabee e la nascita dell'architettura Intel MIC Principali caratteristiche Transistor tri-gate Bus PCI Express Knights Corner: la prima generazione Composizione della scheda e microarchitettura Capitolo 2: I processori Xeon Phi Knights Landing Il sottosistema di calcolo Il core Hyper-threading e gestione delle risorse Instruction Set Architecture (ISA) Memorie cache La modalità all-to-all La modalità quadrante La modalità sub-numa (SNC-4/SNC-2) Il sottosistema di memoria La modalità cache La modalità flat La modalità ibrida Il sottosistema di I/O L'architettura Omni-Path (OPA) Capitolo 3: Introduzione alla programmazione Modalità di esecuzione OpenMP Esempi di codice Intel Xeon Phi vs GPGPU Nvidia Conclusioni Bibliografia e siti web... 39

4 Introduzione Negli ultimi trent' anni la tecnologia elettronica si è evoluta rapidamente nel campo dei microprocessori, aprendo la strada alla realizzazione di prodotti più avanzati e potenti. Se in passato le architetture con un'elevata frequenza di clock erano il principale interesse del mercato, oggi l'attenzione si è spostata sul multicore e manycore design. I progettisti hanno introdotto un numero sempre maggiore di core per singolo processore al fine di aumentare velocità e prestazioni, puntando tutto sul parallelismo. Innovativa, in questi ultimi anni, è stata l' architettura manycore, che integra al proprio interno un elevato numero di unità di elaborazione ed è espressamente rivolta a segmenti e applicazioni che eseguono elaborazioni altamente parallele, tra cui l' High Performance Computing (HPC) [38]. Questo ha permesso la comprensione e lo studio di fenomeni complessi, fornendo uno straordinario contributo in numerosi settori, tra cui [24] [32] : Climatologia: studio del clima globale; Farmacologia: sviluppo di nuovi farmaci; Medicina: studio delle proteine per la cura e la prevenzione delle malattie; Fisica: equazioni fluidodinamiche; Esplorazione petrolifera; Analisi finanziarie. 4

5 L' azienda Intel è stata una delle prime ad addentrarsi in questo campo e a rendere noto, durante l' International Supercomputing Conference del 2010, l intento di offrire dei prodotti basati sull architettura Many Integrated Core (MIC) in grado di eseguire trilioni di calcoli al secondo [33]. I primi prodotti basati su architettura Intel MIC sono stati i processori appartenenti alla famiglia Xeon Phi. Essi sono stati la prima concretizzazione commerciale del progetto Larrabee, che è stato abbandonato anni fa e che ha contribuito alla nascita dell'iniziativa MIC [34]. Questa tesi di laurea si pone l obiettivo di illustrare le caratteristiche delle architetture Intel Xeon Phi e, nello specifico, dei processori di seconda generazione Xeon Phi Knights Landing. In particolare, verranno analizzati dettagliatamente gli aspetti relativi al sistema di calcolo, di memoria e di input/output del processore con le rispettive componenti. 5

6 Capitolo 1: La famiglia Intel Xeon Phi In questo capitolo si esporrà brevemente l' origine dell'architettura Many Integrated Core di Intel su cui sono basati i processori Xeon Phi. Successivamente verrà fornita una panoramica delle caratteristiche fondamentali di tali processori e della prima generazione della gamma, gli Xeon Phi Knights Corner. 1.1 Il progetto Larrabee e la nascita dell'architettura Intel MIC [17] [18] Come accennato precedentemente, l' architettura Intel MIC prese vita dal progetto Larrabee. Esso nasceva dalla volontà di realizzare un processore per il calcolo parallelo, utilizzando un'unità di elaborazione grafica (GPU). Larrabee doveva essere basato su un' architettura x86 parallela, progettata per raggiungere una scalabilità di TeraFLOPS I. Poteva essere considerato un ibrido tra un processore multicore e una GPU: la gerarchia delle cache e la compatibilità con l'architettura x86 erano simili a quelle di una CPU, mentre le sue unità SIMD II lo rendevano simile ad una GPU [17]. Tuttavia il progetto fu sospeso nel maggio del 2010, in quanto non furono raggiunti gli obiettivi prefissati. Nel settore della grafica, l'architettura x86 non permise infatti di raggiungere le prestazioni della concorrenza (AMD e Nvidia) [21] [31]. I Il FLOPS (FLoating point Operation Per Second) rappresenta il numero di operazioni in virgola mobile eseguite in un secondo dal microprocessore. Esso è un parametro necessario per la valutazione della potenza di calcolo. II Single Instruction Multiple Data. Un' architettura SIMD è un' architettura in cui sono presenti unità che elaborano dati in parallelo. Si possono dunque ottenere più risultati attraverso un' unica istruzione. 6

7 In seguito l'azienda fornì i primi dettagli relativi all' architettura MIC, che aveva ereditato molti elementi dal progetto Larrabee. Il prodotto tuttavia non sarebbe stato una GPU, ma un coprocessore per l' High Performance Computing. Il primo prototipo fu chiamato Knights Ferry. Successivamente si passò al Knights Corner, il primo prodotto commerciale manycore della Intel e primo coprocessore della famiglia Xeon Phi. 1.2 Principali caratteristiche Gli Intel Xeon Phi sono stati specificamente progettati per soddisfare le esigenze delle applicazioni HPC più impegnative. Essi sono costituiti da un numero cospicuo di unità di elaborazione ed un numero ancora maggiore di thread (4 per singolo core) ed offrono notevoli prestazioni, in quanto la velocità più bassa di ogni nucleo è compensata da un elevato grado di parallelismo. Tra le principali caratteristiche degli Xeon Phi, abbiamo: L' architettura Intel Many Integrated Core (MIC), costituita da piccoli ed efficienti core con unità di elaborazione vettoriale a 512 bit (unità SIMD); Un modello di programmazione familiare all' architettura Intel, che consente un ampio riuso del codice esistente; L'esecuzione di applicazioni scritte in linguaggi di programmazione standard come Fortran, C e C ++; L' utilizzo di transistor tri-gate; La presenza di un connettore PCI Express (Peripheral Component Interconnect Express). In particolare analizziamo le ultime due caratteristiche relative all'innovativa tecnologia utilizzata, i transistor tri-gate e il connettore PCI Express. 7

8 1.2.1 Transistor tri-gate [16] Per la realizzazione degli Xeon Phi sono stati utilizzati transistor tri-gate o 3D. La nuova tecnologia fu annunciata da Intel nel 2002, tuttavia è stata commercializzata parecchi anni più tardi, abbinata al processo produttivo a 22 nanometri. In questi transistor un'aletta (o fin) di silicio tridimensionale, utilizzata in sostituzione del tradizionale gate planare, si innalza dal substrato di silicio. Rispetto ai transistori bidimensionali, in cui era presente un solo gate sulla parte superiore, vengono implementati altri due gate su ciascun lato dell'aletta. Figura 1 [3] Ciò ha permesso di ottenere numerosi vantaggi, tra cui: Aumento del flusso di corrente quando il transistor è in stato on; Riduzione del flusso di corrente quando il transistor è in stato off; Maggiore rapidità di commutazione dallo stato on a quello off (e viceversa); Riduzione della tensione necessaria per il funzionamento del transistor; Riduzione del problema "leakage" III, che può comportare errori e perdite di potenza. III Fenomeno per cui una piccola quantità di corrente riesce a scorrere attraverso il transistor in stato di interdizione. 8

9 Solitamente per applicazioni ad elevate prestazioni viene utilizzato un numero maggiore di alette parallele, al fine di massimizzare gli effetti del transistor tri-gate distribuendo tensioni e correnti. Figura 2 [3] [36] [40] Bus PCI Express I prodotti Xeon Phi possono connettersi al sistema con un processore Intel Xeon, noto anche come "host", tramite un bus PCI Express. Si tratta di un bus d'interconnessione basato su un trasferimento dei dati seriale e costituito da una serie di canali che, aggregati tra loro, consentono un aumento della banda passante disponibile [47]. Il PCIe è stato progettato per sostituire gli standard PCI, PCI-X e AGP ed offre slot x1 (18 pin), x4 (32 pin), x8 (49 pin) e x16 (82 pin). Numerose le versioni prodotte in questi anni: dal primo PCI Express 1.0a del 2003 con una banda passante di 250 MB/s per canale e un tasso di trasferimento di 2,5 GT/s (Giga Transfer al secondo), si è giunti al PCI Express 3.1 con una banda passante di 1 GB/s per canale e un tasso di trasferimento di 8 GT/s. Per il 2018 si attende il debutto del PCIe 4.0, che permetterà un raddoppio della banda massima complessiva rispetto al PCI Express Knights Corner: la prima generazione La prima generazione della gamma Xeon Phi è stata indicata con il nome in codice Knights Corner ed è in commercio a partire dal novembre del Essa integra dai 57 ai 61 core ed è stata realizzata con il processo di produzione a 22 nanometri, utilizzando strutture a transistor tri-gate di dimensioni pari a 22 miliardesimi di metro. In grado di raggiungere circa un TeraFLOPS di potenza di elaborazione a precisione doppia, gli Knights Corner possono essere utilizzati solamente come scheda PCIe a supporto dei processori Intel Xeon. Essi possono agire sotto il sistema operativo host o come un server indipendente eseguendo Red Hat Enterprise Linux o SuSE Linux [39]. 9

10 Di seguito è riportata la lista dei modelli prodotti [37] [48] : Xeon Phi x100 Numero di core (threads) 3120A 3120P 57 (228) S1P 5120D 60 (240) P 7120X Frequenza di clock di base (MHz) Frequenza di clock turbo IV (MHz) 7120P 7120A 7120D SE10P 61 (244) 61 (244) SE10X - Dimensione massima di memoria (Gb) 6 8 Oggi questi coprocessori sono indicati con il nome "Intel Xeon Phi x100" e sono già passati in secondo piano rispetto alla nuova generazione Xeon Phi Knights Landing Composizione della scheda e microarchitettura [2] [4] La scheda del coprocessore Knights Corner è composta dai seguenti sottosistemi: Coprocessore MIC con sistema di clock integrato e memoria GDDR5; System Management Controller V (SMC), sensori termici e una ventola (solamente per i modelli 3120A e 7120A); Connessioni PCI Express; Regolatori di tensione alimentati dalla scheda madre tramite il connettore PCI Express e due connettori ausiliari di alimentazione. IV Fa riferimento alla tecnologia Intel Turbo Boost, che accelera la frequenza del processore. V Controller capace di gestire il corretto funzionamento dell alimentazione e di alcune componenti hardware. 10

11 Figura 3 [2] Per quanto riguarda la microarchitettura, nel coprocessore Knights Corner sono presenti core di elaborazione, cache L2, controller di memoria e logica client PCIe. Tutti questi elementi sono collegati attraverso un'interconnessione bidirezionale ad anello. Vi è inoltre una tag directory distribuita, il cui compito è mantenere coerente il contenuto delle cache e mappare in modo univoco gli indirizzi fisici. Attraverso l'uso dei controller di memoria GDDR e della logica client PCIe viene fornita un'interfaccia diretta alla memoria GDDR5 rispettivamente sul coprocessore e sul bus PCIe. Di seguito è possibile osservare uno schema a blocchi semplificato del coprocessore: Figura 4 [4] 11

12 Il sistema coerente della cache sfrutta tre tipologie di anelli: il data block ring, che è il più costoso ed è in grado di trasportare un intero blocco di dati della cache; l'address ring, utilizzato per mandare indirizzi di memoria e comandi di lettura/scrittura e l' acknowledgement ring, che è il più piccolo ed è usato per inviare messaggi di controllo del flusso e di coerenza. Durante un accesso in memoria, se si verifica un cache miss VI, il core genera un' address request e la invia sull'address ring, interrogando le tag directiories per trovare il blocco di dati desiderato. Se i dati richiesti non si trovano in nessuna cache, il core genera un' ulteriore address request chiedendo l'intervento del controllore di memoria. Una volta recuperato il blocco di dati, esso verrà restituito all'unità di elaborazione attraverso il data block ring. VI Indica un fallimento della cache. I dati richiesti non possono essere letti o scritti in memoria. 12

13 Capitolo 2: I processori Xeon Phi Knights Landing "Knights Landing" è il nome in codice per la seconda generazione della famiglia Xeon Phi, in commercio a partire dal giugno del Indicati anche con il nome "Xeon Phi x200", i chip Knights Landing (KNL) hanno circa 8 miliardi di transistor tri-gate e sono prodotti a 14 nanometri. Si tratta di processori altamente scalabili, che possono raggiungere livelli elevati di prestazioni e parallelismo senza rinunciare alla programmabilità. Rispetto ai coprocessori Knights Corner, essi presentano un numero di core maggiore con una frequenza di clock leggermente più alta. Il loro prezzo si aggira attorno alle migliaia di dollari. Sono stati realizzati diversi modelli [14] : Xeon Phi x200 Numero di core (threads) Frequenza di clock di base (MHz) Frequenza di clock turbo (MHz) Potenza massima di calcolo in doppia precisione (GFLOPS) F F (256) 68 (272) F (288) F 13

14 Il KNL è attualmente disponibile in due configurazioni: Processore host autonomo. In questo modo non è più legato al bus PCIe e può essere inserito sulla scheda madre come CPU principale. Può dunque lanciare ed eseguire un sistema operativo a tutti gli effetti; Processore host autonomo con architettura Omni-Path integrata. Inizialmente era presente anche una versione di coprocessore, similmente agli Knights Corner. Tuttavia, nell'agosto del 2017, l' Intel ha informato del ritiro dal mercato dei coprocessori KNL tramite un post sul proprio blog [13]. La scelta sembrerebbe dovuta al successo dei processori, che avrebbe portato l'azienda a concentrarsi su di essi perché considerati più profittevoli [22]. Andremo ora ad analizzare l'architettura del processore Knights Landing, suddividendolo in tre sottosistemi principali [12] : Il sottosistema di calcolo, costituito da "tile" VII collegati attraverso un' interconnessione a rete; Il sottosistema di memoria, costituito da una memoria MCDRAM di 16 GB, a cui si può accedere attraverso 8 controllori, e una memoria DDR4, accessibile attraverso due controllori a tre canali; Il sottosistema di I/O, composto da 36 linee PCIe 3.0, 4 linee DMI (Direct Media Interface) e un controller Omni-Path opzionale. 2.1 Il sottosistema di calcolo Le unità di elaborazione del processore Knights Landing sono organizzate in tile. Un tile è costituito da [8] : 2 core, ciascuno con 2 VPU VIII AVX-512; Una memoria cache L2 di 1 MB; Un Cache/Home Agent (CHA). VII Tradotto: mattonella, piastrella. VIII Vector Processing Unit. Si tratta di un' unità che esegue operazioni su vettori di dati. 14

15 Figura 5 [5] Il KNL presenta una nuova interconnessione a rete 2D con collegamenti bidirezionali, che connette i tile, i controllori di memoria, i controllori di I/O e altri agenti sul chip [6]. Al suo interno, troveremo al massimo un totale di 36 tile attivi (72 core) e 36 MB di memoria cache L Il core [1] [6] Il core del processore Knights Landing è stato modificato notevolmente rispetto a quello del precedente Knights Corner per soddisfare al meglio le applicazioni HPC. Si tratta di una nuova unità di elaborazione two-wide IX e con pipeline out-of-order X, basata su una microarchitettura Silvermont. IX Può eseguire 2 istruzioni per ciclo. X Le istruzioni non devono necessariamente seguire l' ordine indicato dal programma. Esse vengono assemblate a seconda delle dipendenze, eseguite in parallelo e poi riordinate. 15

16 Nonostante il core sia two-wide dal punto di vista delle operazioni di decodifica, allocazione e retire; può arrivare ad eseguire sino a 6 operazioni per ciclo (2 operazioni di memoria, 2 di interi e 2 in virgola mobile). Esso inoltre dispone di un supporto buffer maggiore, utilizzato per migliorare il parallelismo a livello di istruzione. Di seguito è possibile osservare il diagramma di flusso dei dati del core e della VPU, che mostra i principali buffer e registri: Figura 6 [6] Esso è diviso, in modo approssimativo, in cinque unità: la front-end unit (FEU), l' allocation unit (AU), l' integer execution unit (IEU), la memory execution unit (MEU) e la VPU. La FEU (in marrone sulla figura) comprende un' instruction cache (IL1) di 32 KB e un instruction Translation Lookaside Buffer XI (i-tlb) di 48 entries. Essa ha il compito di effettuare il fetch, la decodifica delle operazioni e la branch prediction (predizione delle XI Si tratta di un buffer di supporto, utilizzato per incrementare la velocità di traduzione degli indirizzi virtuali. Nei sistemi più avanzati, è una vera e propria memoria cache. 16

17 diramazioni). Divide inoltre le operazioni in micro operazioni (µops) più semplici e le consegna all'allocation unit. La maggior parte delle operazioni viene codificata in una sola micro operazione. In ogni ciclo possono essere decodificate al massimo due istruzioni, che vengono poi inserite in un' Instruction Queue (IQ) di 32 entries. L' AU (corrispondente al blocco Allocate/Rename) ha il compito di preparare le µops per l'esecuzione out-of-order. Essa assegna le risorse della pipeline, come le 72 entries del reorder buffer XII (ROB) e del rename buffer XIII (RB), gli store data buffer, le entries della tabella gather/scatter XIV e della reservation station (RS o stazione di prenotazione). Essa inoltre rinomina i registri sorgente e destinazione delle µops nel rename buffer. Il RB conserva i risultati delle µops fin quando esse non terminano, successivamente questi vengono trasferiti nel Register File (RF). Dopo essere passate nell' AU, le µops sono mandate ad un' unità di esecuzione (IEU, MEU o VPU) in base al tipo. Alcune potrebbero essere inviate a più di un' unità. L' AU è 2-wide, nel senso che legge ed esegue 2 µops per ciclo. Le µops che non possono ottenere tutte le risorse richieste restano nell' AU finché quelle risorse non diventano disponibili. L' IEU (in blu sull' immagine) esegue le micro operazioni di interi. Ogni core possiede due IEU, ognuna delle quali contiene una Reservation Station di 12 entries in grado di eseguire una micro operazione per ciclo. La MEU (in verde chiaro) esegue micro operazioni di memoria e serve le richieste di fetch per gli i-cache miss e gli i-tlb miss. In un ciclo, essa può eseguire fino a due operazioni di memoria, come il caricamento o la memorizzazione. XII Il reorder buffer (buffer di riordino) è un buffer utilizzato per implementare l' esecuzione out of order. Esso memorizza l' ordine reale di esecuzione delle istruzioni del programma. XIII Il rename buffer (buffer di rinomina) è utilizzato per incrementare il parallelismo a livello di istruzione. In esso sono memorizzati i nomi temporanei di alcuni registri, che vengono rinominati per permettere l'esecuzione parallela delle istruzioni che necessitano di uno stesso registro di destinazione. XIV Il gather-scatter può essere considerato l'equivalente vettoriale dell'indirizzamento indiretto. 17

18 All'interno della MEU troviamo 2 TLB e una memoria data cache L1 (DL1) di 32 KB, che supporta due letture simultanee e una scrittura, entrambe a 512 bit. Le operazioni di memoria sono eseguite in-order dalla RS, ma possono essere eseguite anche out-of-order. Se le micro operazioni non sono completate con successo, vengono allocate nel recycle buffer e riportate nella pipeline MEU finché non sono risolti i loro conflitti. La MEU inoltre contiene logica specializzata per gestire le istruzioni di gather/scatter efficientemente. La VPU (in arancione) è l'unità di esecuzione vettoriale in virgola mobile del KNL. Essa può arrivare ad eseguire 32 operazioni a precisione singola o 16 operazioni a precisione doppia per ciclo. Ogni core possiede 2 VPU, che forniscono supporto per le divisioni di interi, per le istruzioni legacy XV e le nuove istruzioni AVX-512. Ciascuna di esse contiene una reservation station di 20 entries, in grado di eseguire una micro operazione out-of-order per ciclo Hyper-threading e gestione delle risorse Il core del Knights Landing supporta fino ad un massimo di 4 thread attraverso l'uso di tecniche di Simultaneous Multi-threading (STM). L' STM permette l'esecuzione di più thread contemporaneamente e mantiene le unità di elaborazione sempre operative utilizzando le istruzioni dei singoli thread [26], che fluiscono attraverso la pipeline simultaneamente. Con il nome "hyper-threading" si vuole indicare la tecnologia sviluppata da Intel, basata sull' STM. Tale tecnologia permette al sistema operativo di vedere più core, detti core logici, in presenza di un' unica unità di elaborazione [27]. XV Istruzioni presenti nelle precedenti versioni di Xeon Phi. 18

19 Ogni core fisico può dunque elaborare contemporaneamente fino a 4 thread, utilizzando in modo più efficiente le risorse del processore. Dal punto di vista logico, ogni core è equivalente ad un quad-core. Di seguito è possibile osservare lo schema di funzionamento dell' STM, in cui vengono eseguite in parallelo istruzioni di thread diversi. Figura 7 [7] Per quanto riguarda invece la gestione delle risorse tra thread, queste possono essere partizionate, condivise o replicate in modo dinamico. Le risorse partizionate dinamicamente sono i reorder buffer, i rename buffer, gli store data buffer, le reservation station, l' instruction queue e le entries della tabella gather-scatter. Le risorse condivise invece sono le cache, i TLB, la maggior parte delle strutture MEU, i branch predictors e le tabelle di prefetcher hardware. Infine abbiamo le strutture replicate, che sono limitate al minimo indispensabile e includono le tabelle di rename, gli architectural register (i register file) e i control register. Sono presenti inoltre dei thread selectors in alcuni punti delle pipeline dei core per aumentare il throughput e mantenere equità tra i thread. Essi considerano la disponibilità delle risorse e cercano di effettuare le giuste selezioni. L'obiettivo è massimizzare le risorse nei thread attivi, ovvero nei thread in esecuzione che non sono sospesi/terminati e non hanno eseguito un' operazione di wait su un monitor. A seconda del numero di thread attivi, sono definite le seguenti modalità: 19

20 Single-thread: quando è attivo un unico thread; Dual-thread: quando sono attivi 2 thread; Quad-thread: quando sono attivi 3 o 4 thread. Le risorse sono poi equamente distribuite tra i thread in base alla modalità di threading. [6] Instruction Set Architecture (ISA) [12] Il KNL, essendo compatibile con i prodotti Intel Xeon, supporta tutte le precedenti estensioni ISA (x86/mmx, SSE, AVX, AVX2 e BMI), eccetto TSX. Oltre a queste, introduce le istruzioni AVX-512, che forniscono un supporto SIMD a 512 bit e possono essere divise in 4 categorie: Le istruzioni di base AVX-512F, che rappresentano l'estensione a 512 bit dei precedenti AVX e AVX2 a 256 bit; Le istruzioni esponenziali e reciproche AVX-ER; Le istruzioni di rilevamento dei conflitti AVX-CD; Le istruzioni di prefetch AVX-PF. Sono stati introdotti inoltre notevoli miglioramenti relativi all' architettura, tra cui: 16 nuovi registri SIMD a 512 bit (per un totale di 32); 8 registri opmask (k0-k7) per l'esecuzione condizionale e il merge degli operandi; Supporto per il set di vettori e di registri SIMD; Supporto per gather/scatter; Un nuovo prefisso (EVEX) per supportare la codifica delle istruzioni fino a 512 bit Memorie cache [1] [6] [28] Le memorie cache sono suddivise in linee (cache line) contenenti un blocco di dati contiguo di 64 byte, che rappresenta i contenuti di un blocco di memoria DDR di uguale grandezza. Il processore KNL, come molti altri processori moderni, possiede diversi tipi di cache con velocità e dimensioni differenti. 20

21 All' interno di ogni core troviamo una memoria data cache L1 (DL1) e una memoria instruction cache L1 (IL1), entrambe writeback XVI, 8-way set associative XVII e di 32 KB. È possibile calcolare il numero di line contenuto in ogni cache attraverso la formula: Numero di cache line = dimensione della memoria/ dimensione del blocco dati. Ad esempio, nel caso della memoria cache L1 avremo: 32 Kbytes / 64 bytes = 512 cache line. Dunque la memoria cache L1 può contenere fino a 512 blocchi di dati. Se viene inserito un blocco oltre questo numero, un altro deve essere rimosso. La cache L2 è invece condivisa tra due core all'interno di ogni tile ed è una memoria 16- way set associative di 1 MB, in grado di eseguire la lettura di 1 cache line e la scrittura di 1/2 cache line per ciclo. Ogni cache L2 è mantenuta coerente dalla BIU (Bus Interface Unit) attraverso l'utilizzo del protocollo MESIF XVIII. La BIU rappresenta l'unità locale di gestione della cache comune e contiene un prefetcher hardware L2 (L2 HWP), che viene addestrato sulle richieste provenienti dai core attraverso un' interfaccia dedicata. Se si accede alla cache L1 e i dati o le istruzioni necessarie non si trovano lì, viene mandata una richiesta attraverso il prefetcher hardware L1 alla cache condivisa L2. Se il blocco è presente, la cache L2 risponde fornendo il blocco di dati di 64 byte necessario, riempiendo la linea di cache L1 con il suo contenuto. Se esso non è presente nella cache L2, la richiesta è inoltrata direttamente alla rete attraverso il Cache/Home Agent. In questo caso, il blocco di dati potrà essere fornito da una cache L2 presente in un altro tile, dalla memoria DDR oppure dalla MCDRAM, nel caso in cui essa sia utilizzata come memoria cache L3 XIX. XVI Politica che consente la scrittura dei dati in differita. Inizialmente le informazioni vengono scritte solo nella cache. Successivamente, quando il blocco deve essere eliminato per fare spazio ad altri dati, viene aggiornata la memoria principale. XVII Ciascun blocco di memoria ha a disposizione 8 locazioni di cache. XVIII Protocollo in cui qualsiasi blocco interno alla cache può trovarsi nello stato: Modified (il blocco è stato modificato e la sua copia in memoria principale non è aggiornata), Exclusive (il blocco non è stato modificato ed è unico), Shared (blocco condiviso con altre cache), Invalid (blocco invalido) o Forward (ultimo blocco letto). XIX Si fa riferimento alla modalità cache. Verrà trattata successivamente. 21

22 Figura 8 [6] Quindi il processore KNL possiede una memoria cache IL1 e DL1 per ogni core e una memoria cache L2 per ogni tile, connessa alle altre attraverso una rete a maglia. Come il coprocessore KNC, il KNL dispone di una tag directory distribuita per mantenere la coerenza delle cache. Essa è costituita da un insieme di tag directiories (TDs), che sono parte del CHA e il cui compito è identificare lo stato e la posizione delle cache line presenti nel processore. Per gestire la complessità e impostare il metodo di funzionamento ottimale per le varie applicazioni, il programmatore può utilizzare le modalità di clustering della cache [42]. Queste modalità forniscono diversi livelli di affinità di indirizzo per migliorare le prestazioni e possono essere selezionate all'avvio, entrando nel BIOS. Esse sono: La modalità all-to-all; La modalità quadrante; La modalità sub-numa La modalità all-to-all In questa modalità gli indirizzi sono distribuiti uniformemente in tutte le tag directories e su tutta la memoria. Ogni tile può richiedere dati presenti in una qualsiasi parte del chip. Si tratta della modalità più generale, con il modello di programmazione più semplice ma prestazioni inferiori rispetto alle altre. Non c'è alcuna affinità tra tile, directory e memoria. Nella figura 9 alla pagina seguente è possibile osservare una transazione relativa ad un cache miss di una cache L2. Essa porterà solitamente all'attraversamento di lunghe distanze all'interno del chip. 22

23 Figura 9 [8] 1. Si verifica un cache miss di una cache L2; 2. Il tile manda una richiesta alla directory distribuita per verificare se qualsiasi altro tile nel chip abbia l'indirizzo necessario nella sua cache; 3. Se i dati non sono presenti in nessun altro tile, viene mandata una richiesta alla memoria; 4.La memoria legge i dati e li invia al richiedente. Se la tag directory avesse trovato un tile con i dati richiesti nella propria cache, avrebbe mandato una richiesta a quel tile affinché inviasse i dati La modalità quadrante Questa modalità suddivide il chip in quattro quadranti virtuali, che stabiliscono un certo grado di affinità tra la directory e la memoria. Gli indirizzi sono distribuiti infatti in modo che la tag directory sia nello stesso quadrante della locazione di memoria in cui risiedono i dati. Non c'è invece alcuna affinità con il tile (ciò significa che una richiesta da un tile può arrivare in una qualsiasi directory). Questa modalità cluster richiede memoria simmetrica, ovvero la stessa capacità su entrambi i controller di memoria DDR. Essa è trasparente rispetto al supporto software e 23

24 fornisce una migliore latenza e una larghezza di banda più elevata per i core in esecuzione rispetto alla modalità all-to-all. La figura seguente mostra come un cache miss di una cache L2 fluisca nel chip KNL nella modalità quadrante: Figura 10 [8] 1. Cache miss di una cache L2; 2. Richiesta alla directory distribuita; 3. I dati non sono presenti in nessuna directory. Viene inoltrata la richiesta alla memoria; 4. Invio dei dati dalla memoria La modalità sub-numa (SNC-4/SNC-2) La modalità sub-numa può essere considerata un' estensione della modalità quadrante. Il sistema operativo vede tutti e quattro i quadranti come cluster virtuali (o domini) NUMA XX (SNC-4). In questa modalità è presente affinità tra tile, directory e memoria: ciò significa che una richiesta da un tile accederà ad una directory nel suo cluster e, a sua volta, la directory accederà ai controller di memoria all'interno di quel cluster. L' SNC-4 fornisce la latenza più bassa tra tutte le modalità, in quanto la maggior parte del traffico sarà contenuto all'interno del cluster locale. XX Non Uniform Memory Access. Architettura in cui i tempi di accesso dipendono dalla posizione della memoria. 24

25 Essa non è completamente trasparente rispetto al supporto software, che deve essere ottimizzato NUMA (ovvero deve allocare memoria nello stesso cluster in cui è in esecuzione) per beneficiare di questa modalità. È presente anche una versione SNC-2, che divide logicamente il KNL in due regioni (emisferi) invece che in quattro. Di seguito è possibile osservare le transazioni dovute a un cache miss di una cache L2 con la modalità SNC-4: Figura 11 [8] 1. Cache miss di una cache L2; 2. Richiesta alla directory distribuita; 3. I dati non sono presenti in nessuna directory. Viene inoltrata la richiesta alla memoria; 4. Invio dei dati dalla memoria. 2.2 Il sottosistema di memoria [1] [6] [12] Il processore Knights Landing possiede due tipi di memoria: una multi-channel DRAM (MCDRAM) e una memoria double data rate (DDR). 25

26 La MCDRAM è una memoria a banda larga di 16 GB, che comprende 8 device interagenti con la rete attraverso 8 EDC (Embedded DRAM Controller). Essa è costituita da una serie di DRAM impilate, collegate attraverso un'interconnessione verticale in silicio (through-silicon via). Ogni pila è composta da cinque livelli: quattro di archiviazione e uno logico che controlla il tutto. Ogni DRAM è suddivisa in partizioni. Partizioni corrispondenti di più DRAM formano un canale, ciascuno con un proprio set di dati e indirizzi. Tutti i canali possono essere acceduti in parallelo e forniscono una larghezza di banda elevata (fino a 450 GB/s) per le applicazioni HPC. La MCDRAM inoltre supporta la modalità di self-refresh XXI ed è considerata una variante della HBM (High Bandwidth Memory), che ha soppiantato le memorie GDDR5. La memoria DDR4 invece è una SDRAM accessibile attraverso sei canali (tre per ogni controller DDR MC) che, a seconda del modello di processore, possono lavorare a 2133 o 2400 MHz. La DDR4 fornisce una larghezza di banda aggregata di circa 90 GB/s e uno spazio di archiviazione massimo di 384 GB. I due tipi di memoria sono presentati agli utenti in tre modi diversi: La modalità cache, nella quale la MCDRAM funge da cache per la memoria DDR; La modalità flat, nella quale la MCDRAM è trattata come una memoria standard nello stesso spazio di indirizzamento della DDR; La modalità ibrida, in cui la MCDRAM in parte è memoria cache e in parte memoria standard. Queste modalità possono essere selezionate attraverso il BIOS all'avvio La modalità cache In questa modalità, la MCDRAM viene configurata come una memoria cache L3 direct mapped XXII affiancata alla DDR. Il vantaggio della modalità cache è l'elevata larghezza di banda, mentre lo svantaggio è l'aumento del tempo di latenza. Se infatti si verifica un cache miss della MCDRAM, le richieste "mancate" devono essere prima comunicate alla DRAM corrispondente e XXI Vengono utilizzati dei cicli di refresh per mantenere i dati in memoria. XXII Cache a indirizzamento diretto. A ciascun blocco di memoria corrisponde una locazione della cache. 26

27 successivamente viene mandata un'ulteriore richiesta alla memoria DDR. L'aumento del tempo di latenza è dovuto inoltre al fatto che i dati devono essere trasferiti dalla DDR alla MCDRAM e infine alla cache L2. La modalità cache non richiede alcuna abilitazione software, essa è completamente gestita in hardware. Per le applicazioni che non presentano una buona percentuale di cache hit, possono essere utilizzate le altre due modalità per avere un maggior controllo e sfruttare al meglio la MCDRAM [35]. Figura 12 [9] La modalità flat Nella modalità flat, MCDRAM e DDR sono mappate nello stesso spazio di indirizzamento. La MCDRAM ha dunque uno spazio fisico indirizzabile, che consente al programmatore di Figura 13 [9] spostare le strutture dati dentro e fuori di essa. Il sistema è visto come un dominio NUMA a due nodi. Questa modalità offre la larghezza di banda più elevata e la latenza più bassa rispetto alle altre e permette di incrementare la dimensione della memoria del sistema, in quanto si aggiungono allo spazio di indirizzamento i 16 GB della MCDRAM. Il principale svantaggio della modalità flat è che sono necessarie delle modifiche software per utilizzare sia la memoria DDR che la MCDRAM nella stessa applicazione. Per allocare esplicitamente dati nella MCDRAM si possono utilizzare: Le funzioni "fast malloc" della libreria Memkind; Gli attributi FASTMEM in Fortran. Nella figura 14 possiamo osservare dei semplici esempi di codice, che mostrano l' utilizzo della funzione hbw_malloc e degli attributi FASTMEM. 27

28 Figura 14 [8] Dalla modalità flat derivano la modalità MCDRAM-only e DDR-only. In questi casi, sarà presente un unico tipo di memoria all'interno del sistema e i programmi eseguiranno allocando tutta la loro memoria nella MCDRAM o nella DDR La modalità ibrida La terza modalità è chiamata "Modalità ibrida" e divide la MCDRAM in due: una parte di essa viene utilizzata in modalità cache e un'altra parte in modalità flat. Sono presenti 2 varianti della modalità ibrida: Hybrid25, in cui il 25% della MCDRAM è utilizzato come memoria cache, e Hybrid50, che utilizza invece il 50%. Nella modalità ibrida è necessaria l'abilitazione del software per accedere alla sezione di MCDRAM in modalità flat, mentre la sezione in modalità cache non richiede alcun supporto software. Figura 15 [9] 2.3 Il sottosistema di I/O Dal punto di vista dell' I/O, le varianti del Knights Landing si presentano in modo diverso. Il chip di base presenta tre porte PCIe 3.0 (due x16 e una x4) e una porta DMI x4, utilizzata per effettuare il collegamento ai PCH XXIII (Platform Controller Hub). La XXIII Chip Intel in grado di controllare alcuni data path e funzioni di supporto, utilizzato in combinazione con il processore. 28

29 versione di processore del KNL permette l'inserimento sulla scheda madre come un normale processore attraverso il socket LGA Per la versione di coprocessore, era invece necessario utilizzare una porta PCIe per collegarlo al sistema. Questa versione del chip aveva i canali di memoria DDR4 disattivati e si poteva accedere solamente ai 16 GB della MCDRAM, oltre che a quelli del processore host [25]. Probabilmente la versione del KNL più interessante da una prospettiva I/O [12] è quella che dispone di due porte Omni-Path, che consentono di raggiungere una velocità di trasferimento dati pari a 100 GB/s L'architettura Omni-Path (OPA) L' Omni-Path è un' architettura di comunicazione ad alte prestazioni della Intel, che permette l' esecuzione di una vasta gamma di applicazioni computazionali a nodi multipli. Essa offre una bassa latenza di comunicazione, un basso consumo energetico e un'elevata ampiezza di banda. L' Omni-Path è un componente chiave dello Scalable System Framework, un modello di progettazione dell'architettura che ottimizza le prestazioni di sistemi su qualunque scala [29]. È possibile identificare le versioni del KNL con Omni-Path attraverso le due porte integrate sul package del processore. Come abbiamo detto in precedenza, il chip può essere inserito all'interno del socket LGA 3647, che presenta un'apertura per il connettore Omni-Path [23]. Figura 16 [8] 29

30 I principali componenti dell' architettura OPA sono [10] : Gli Host Fabric Interface, che forniscono connettività tra i nodi; Gli Switch, che permettono di creare topologie per la connessione dei vari endpoint; Il Fabric Manager, che monitora e provvede alle risorse. Figura 17 [10] Il sistema è costituito inoltre da layers (livelli): Livello 1: si tratta del livello fisico, che sfrutta gli standard Ethernet e InfiniBand XXIV ; Livello 1.5: permette la consegna affidabile dei pacchetti al Livello 2; Livello 2: si tratta del livello Data Link, che si occupa dell'indirizzamento, dell'allocazione delle risorse, dello switching e del partizionamento; Livelli 4-7: si occupano del trasporto ai livelli applicativi. XXIV Protocollo di comunicazione con elevato throughput e bassa latenza, utilizzato per l'interconnessione tra processore e dispositivi di I/O. 30

31 Capitolo 3: Introduzione alla programmazione L'obiettivo di questo capitolo è mostrare l'impatto che l'architettura MIC ha sul software attraverso la programmazione. Ciò ci permetterà di conoscere e comprendere al meglio il comportamento degli Xeon Phi e il modo in cui essi eseguono le diverse applicazioni. 3.1 Modalità di esecuzione Il grande vantaggio degli Xeon Phi è quello di poter programmare utilizzando linguaggi semplici (C, C++, Fortran) e modelli standard per il calcolo parallelo (OpenMP, MPI). In generale, per i coprocessori possiamo distinguere diverse modalità di esecuzione del codice [30] : La modalità di esecuzione offload: il sistema host (il processore Intel Xeon) scarica tutto il lavoro o una parte di esso al coprocessore Xeon Phi; La modalità di esecuzione nativa: il coprocessore può essere visto come un ulteriore nodo di calcolo e l' intera applicazione viene eseguita su di esso; La modalità di esecuzione simmetrica: in questo caso l'applicazione esegue sia sull' host che sul coprocessore Xeon Phi; La modalità di esecuzione host: l'applicazione esegue solo sul sistema host. Il processore KNL supporta le stesse modalità di esecuzione [41], nonostante abbia un ruolo diverso. Esso lavora come un normale processore Intel, tuttavia bisogna tener conto dell'elevato numero di core e del parallelismo che lo caratterizzano. 31

32 3.2 OpenMP OpenMP (Open Multiprocessing) è un'api per il calcolo parallelo a memoria condivisa, supportata da vari sistemi operativi (Solaris, macos, Linux, Windows, ecc.). Essa permette la parallelizzazione del codice attraverso delle direttive, che vengono interpretate come commenti e dunque consentono la compilazione ed esecuzione in seriale senza alcuna modifica. Tali direttive in Fortran devono essere precedute dalla sentinella!$omp, mentre in C/C++ devono seguire le istruzioni #pragma omp [43] Esempi di codice Presentiamo ora un esempio di codice elementare scritto in C, che mostra l'inizializzazione di un array, utilizzando le direttive OpenMP: Figura 18 Inizialmente è presente un unico thread. Esso esegue il codice sequenzialmente fino alla direttiva #pragma omp parallel for e successivamente crea un pool di thread, diventandone il master. L'array definito viene poi inizializzato in parallelo, utilizzando ogni thread attivo per svolgere il lavoro. Il costrutto #pragma omp parallel for serve infatti a distribuire il loop for a tutti i thread del pool corrente. Sono inoltre presenti: La libreria omp.h, che fornisce gli strumenti necessari per la scrittura di codice multi-thread; 32

33 La funzione omp_get_thread_num(), che restituisce l' id del thread. Per creare l' eseguibile con compilatore GCC, viene usato il flag -fopenmp : gcc -fopenmp test.c -o test La variante in Fortran di questo esempio è la seguente: Figura 19 Per la creazione dell' eseguibile, in questo caso, dovrà essere utilizzata la sintassi: gfortran -fopenmp -o test test.f90 33

34 Di seguito è possibile osservare un ulteriore esempio, in cui la funzione domult realizza una moltiplicazione tra 2 matrici quadrate A e B e inserisce il risultato in una matrice C: Figura 20 [11] In questo caso abbiamo un'esecuzione in modalità offload: la direttiva #pragma offload target (mic:mic_dev) ci permette infatti di specificare il particolare dispositivo che dovrà eseguire il codice. Attraverso i termini in e out, possiamo inoltre controllare il trasferimento dei dati tra l'host e il coprocessore. In particolare, in indica i dati che fluiscono dall' host al coprocessore, mentre out quelli che fluiscono dal coprocessore all' host. Successivamente verrà inizializzata a zero la matrice C e verrà eseguita la moltiplicazione tra le matrici A e B. Entrambe queste operazioni verranno effettuate in parallelo da 2 pool di thread distinti. Come si può vedere dalla figura, è possibile definire la visibilità delle variabili e dei costrutti attraverso degli attributi di condivisione: default e shared. Solitamente la maggior parte delle variabili è visibile per default a tutti i thread (essendo OpenMP un modello di programmazione a memoria condivisa), talvolta invece occorrono delle variabili private (per evitare ad esempio fenomeni di Race Condition XXV ) [15]. XXV Condizione in cui più processi o thread operano su dati condivisi e il risultato ottenuto dipende dall'ordine di esecuzione delle istruzioni. 34

35 3.3 Intel Xeon Phi vs GPGPU Nvidia [44] [46] Per evidenziare e comprendere al meglio i livelli prestazionali ottenibili attraverso l' utilizzo dell' architettura Intel MIC, verrà effettuato ora un breve confronto tra gli Xeon Phi e le GPGPU XXVI Nvidia. La differenza principale tra i due è innanzitutto l'architettura hardware. Le GPGPU Nvidia infatti usufruiscono dell' architettura CUDA (Compute Unified Device Architecture) per il calcolo parallelo, che permette la programmazione in linguaggi semplici (come C, C++, Fortran, Python, MATLAB) con delle particolari estensioni. Esse utilizzano l' OpenACC XXVII (Open ACCelerators) per la semplificazione della programmazione parallela e le librerie OpenCL e DirectCompute. Nell' immagine seguente è possibile osservare un esempio di codice scritto in C di una funzione saxpy XXVIII ed il suo equivalente per il calcolo parallelo in CUDA C: Figura 21 [45] Uno svantaggio delle GPGPU è invece legato al ruolo subordinato che esse hanno rispetto alla CPU. Infatti, a differenza del processore KNL che può eseguire un vero e proprio sistema operativo, le GPGPU sono delle unità di elaborazione che agiscono a sostegno XXVI General-Purpose computing on Graphics Processing Units. Si tratta di una GPU utilizzata per scopi diversi, non legati alla computer grafica. XXVII Modello di programmazione basato sull' utilizzo di direttive utili per la parallelizzazione del codice. XXVIII Si tratta di una funzione che implementa una moltiplicazione e un' addizione vettoriale. 35

36 della CPU. Dunque esse devono essere necessariamente collegate al sistema attraverso un connettore PCIe (fatta eccezione per NVLink). Ciò comporterà dei costi di trasferimento dei dati dall' host alla scheda e viceversa. Per quanto concerne la programmazione, l' Intel sta puntando sul fatto che per gli Xeon Phi sia necessaria solamente la ricompilazione ed esecuzione del codice, in quanto essi utilizzano un modello di programmazione familiare all' architettura MIC. In realtà, queste operazioni rallentano l'applicazione in maniera notevole poiché bisogna affrontare diversi problemi tecnici, tra cui la legge di Amdahl XXIX per le porzioni seriali del codice. Il programmatore dovrebbe dunque ricompilare il codice ed impegnarsi per la sua ottimizzazione, oltre che per ottenere un buon grado di parallelismo. Nonostante le differenze, possiamo comunque considerare Xeon Phi e GPGPU Nvidia simili sotto certi aspetti. I programmatori infatti utilizzano tecniche di ottimizzazione e metodi per l'accelerazione del codice simili: librerie, direttive ed estensioni (come CUDA C per le GPGPU o le funzioni intrinseche vettoriali per gli Xeon Phi), che possiamo vedere nella seguente tabella: Figura 22 [46] Tuttavia l'accelerazione risulta superiore nelle GPGPU. Con il medesimo sforzo da parte del programmatore, è possibile infatti ottenere il doppio della performance. Ciò spiega perché si preferisce utilizzare le GPGPU Nvidia rispetto agli Xeon Phi per le applicazioni HPC altamente parallele (con una superiorità di 20 a 1). XXIX Legge dell' ingegnere ed informatico statunitense Gene Amdahl, utilizzata per stimare il massimo miglioramento possibile attraverso la modifica di una o più parti del sistema. Viene solitamente usata nell'ambito del calcolo parallelo per determinare la massima velocità raggiungibile, che dipende dalla quantità di codice sequenziale e parallelizzabile del programma. 36

37 Conclusioni L evoluzione tecnologica ha permesso di passare dal primo microprocessore monolitico, il 4004 del 1971, contenente 2300 transistor e prodotto con tecnologia a nanometri, all attuale Xeon Phi Knights Landing, costituito da circa 8 miliardi di transistor e realizzato con tecnologia a 14 nanometri. Si sta già lavorando alla terza generazione di processori della famiglia Xeon Phi, dal nome in codice "Knights Hill", che sarà probabilmente disponibile a partire dal 2018 e sarà realizzata con tecnologia a 10 nm [32]. Nel corso di questi anni, sono avvenuti dei cambiamenti radicali che hanno rivoluzionato il mondo dei transistor, dei chip e dei processori. Da un' iniziale ricerca di integrazione circuitale e aumento della frequenza di clock, si è passati alla ridefinizione della geometria del transistor e ad un elevato numero di core. Sino ad oggi, l' Intel ha continuato a sviluppare prodotti seguendo i dettami della "legge" di Gordon Moore, cofondatore dell'azienda, secondo cui: «La complessità di un microcircuito, misurata ad esempio tramite il numero di transistori per chip, raddoppia ogni 18 mesi (e quadruplica quindi ogni 3 anni).» [20] Tuttavia sarà necessaria una nuova strategia per il futuro. La legge di Moore, che si è dimostrata valida per molto tempo, dovrà scontrarsi con i limiti tecnologici. I transistori infatti hanno quasi raggiunto il loro limite dimensionale, oltre il quale i fenomeni fisici assumono un comportamento quantistico e probabilistico [19]. 37

38 L'unica soluzione per tenere in vita questa legge è l' utilizzo di nuovi materiali e strutture. Questo sarà il punto di partenza per nuove innovazioni tecnologiche, che porteranno l' Intel alla produzione di processori sempre più all' avanguardia e permetteranno di mantenere la legge di Moore ancora attuale. 38

39 Bibliografia e siti web [1] James Jeffers, James Reinders, Avinash Sodani, "Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition", Morgan Kaufmann, [2] Intel Xeon Phi Coprocessor x100 Product Family - Datasheet [3] [4] [5] [6] [7] [8] [9] KNL_Memory.pdf/a5c820a8-5d4b e5c e846 [10] [11] [12] [13] [14] [15] 39

40 [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] 40

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

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

La gerarchia di memorie (2)

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

Dettagli

Introduzione alle memorie cache. Sommario

Introduzione alle memorie cache. Sommario Introduzione alle memorie cache Corso ACSO prof. Cristina SILVANO Politecnico di Milano Cristina Silvano, 0/0/200 Sommario Obiettivo Livelli della gerarchia di memoria Memoria cache: concetti base Architettura

Dettagli

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Introduzione all'architettura dei Calcolatori. Maurizio Palesi Introduzione all'architettura dei Calcolatori Maurizio Palesi 1 Agenda Architettura generale di un Sistema di Elaborazione La memoria principale Il sottosistema di comunicazione La CPU Miglioramento delle

Dettagli

Miglioramento delle prestazioni

Miglioramento delle prestazioni Miglioramento delle prestazioni Migliorare sia larghezza di banda sia latenza: uso di cache multiple Introdurre una cache separata per istruzioni e dati (split cache) Beneficio: Le operazioni di lettura/scrittura

Dettagli

Esame di INFORMATICA ARCHITETTURA DI VON NEUMANN. Lezione 4 ARCHITETTURA DI VON NEUMANN

Esame di INFORMATICA ARCHITETTURA DI VON NEUMANN. Lezione 4 ARCHITETTURA DI VON NEUMANN Università degli Studi di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA A.A. 2008/09 Lezione 4 ARCHITETTURA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale la memoria secondaria i dispositivi di input/output 1 Fornisce la capacità di

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

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H Architettura dei calcolatori e sistemi operativi Architettura MIPS e set istruzioni Capitolo 2 P&H Instruction Set Architecture ISA Linguaggio assemblatore e linguaggio macchina ISA processore MIPS Modello

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

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2010-2011 Architettura di un calcolatore: introduzione Lezione 18 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2012-2013 Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e

Dettagli

Porte logiche di base. Cenni circuiti, reti combinatorie, reti sequenziali

Porte logiche di base. Cenni circuiti, reti combinatorie, reti sequenziali Porte logiche di base Cenni circuiti, reti combinatorie, reti sequenziali NOT AND A R A B R OR A R B Quindi NAND o NOR sono complete circuiti con solo porte NAND o solo porte NOR. Reti combinatorie Rete

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

Capitolo 2. Elaborazione dei dati. Mauro Giacomini Pearson Addison-Wesley. All rights reserved

Capitolo 2. Elaborazione dei dati. Mauro Giacomini Pearson Addison-Wesley. All rights reserved Capitolo 2 Elaborazione dei dati Mauro Giacomini 2007 Pearson Addison-Wesley. All rights reserved Capitolo 2: Elaborazione dei dati 2.1 Architettura del Computer 2.2 Linguaggio macchina 2.3 Esecuzione

Dettagli

La gerarchia di memorie (2)

La gerarchia di memorie (2) La gerarchia di memorie (2) Calcolatori Elettronici Valeria Cardellini Rielaborate da Salvatore Tucci Migliorare le prestazioni delle cache Consideriamo la formula del tempo medio di accesso in memoria

Dettagli

Un semplice commutatore a pacchetto

Un semplice commutatore a pacchetto Realizzazione di commutatori a pacchetto: cosa c e dentro un router IP? Prof. Ing. Carla Raffaelli Un semplice commutatore a pacchetto Una workstation con schede di rete e software per ricevere pacchetti

Dettagli

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo. Corso integrato di Sistemi di Elaborazione Modulo I Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Architettura dei calcolatori 2 Architettura di un calcolatore Che cos è un calcolatore? Come funziona

Dettagli

Lezione 1. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Lezione 1. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 1 Sistemi operativi 4 marzo 2014 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 14 1.1 Di cosa parliamo in questa lezione? È una introduzione generale ai sistemi

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

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

Scritto da Alessandro Crea Mercoledì 13 Agosto :32 - Ultimo aggiornamento Mercoledì 13 Agosto :14

Scritto da Alessandro Crea Mercoledì 13 Agosto :32 - Ultimo aggiornamento Mercoledì 13 Agosto :14 I nuovi processori Intel Core M di quinta generazione, noti col nome in codice Broadwell, sta nno ormai per sbarcare sul mercato e, per l'occasione, il chipmaker di Santa Clara ha iniziato a rilasciare

Dettagli

Architetture della memoria

Architetture della memoria Architetture della memoria Un elemento determinante per disegnare una applicazione parallela e' l architettura della memoria della macchina che abbiamo a disposizione. Rispetto all architettura della memoria

Dettagli

Schema base di CPU. Interfacce esterne: Memoria I/O ... Architetture Parallele e Distribuite, Bus I/O MINF MMU I MMU D.

Schema base di CPU. Interfacce esterne: Memoria I/O ... Architetture Parallele e Distribuite, Bus I/O MINF MMU I MMU D. Massimiliano Meneghin Marco Vanneschi MMU I IC1 Schema base di CPU M MINF MMU D Bus I/O Interfacce esterne: Memoria I/O TAB-CI TAB-CD IM DM CI CD IC IU RG1 RG EU UNINT CPU chip... Architetture Parallele

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

CPU pipeline 4: le CPU moderne

CPU pipeline 4: le CPU moderne Architettura degli Elaboratori e delle Reti Lezione 25 CPU pipeline 4: le CPU moderne Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/16

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

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

VERIFICA DI SISTEMI. 5 Domanda [1 punto] Calcolare la velocità di trasferimento dei seguenti hard disk:

VERIFICA DI SISTEMI. 5 Domanda [1 punto] Calcolare la velocità di trasferimento dei seguenti hard disk: VERIFICA DI SISTEMI 1 Domanda [2 punti] Illustra la funzione della CPU e degli eventuali elementi che la costituiscono, specificando quali sono i parametri che ne caratterizzano il funzionamento. Spiega

Dettagli

Secondo biennio Articolazione Informatica Sistemi e Reti Prova Terza

Secondo biennio Articolazione Informatica Sistemi e Reti Prova Terza Il clock della CPU A. fornisce la data corrente ai programmi macchina B. temporizza le operazioni elementari C. ha la stessa frequenza del clock del bus di sistema D. si misura in bit per secondo (bps)

Dettagli

CALCOLATORI ELETTRONICI. I dispositivi di memoria

CALCOLATORI ELETTRONICI. I dispositivi di memoria CALCOLATORI ELETTRONICI I dispositivi di memoria I dispositivi di memoria Linguaggi ad alto livello/ Applicazioni SW Informatica Sistema operativo Assembler ISA Architettura di un calcolatore Memoria I/O

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

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II) 1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 La inserita nella architettura dell elaboratore Informatica Facoltà di Medicina Veterinaria a.a.

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 Instruction Set Architecture: nozioni generali Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello del linguaggio specializzato Traduzione (compilatore) o interpretazione

Dettagli

Criteri di caratterizzazione di una memoria

Criteri di caratterizzazione di una memoria La memoria Supporto alla CPU: deve fornire alla CPU dati e istruzioni il più rapidamente possibile; Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità

Dettagli

Architettura del calcolatore (Seconda parte)

Architettura del calcolatore (Seconda parte) Architettura del calcolatore (Seconda parte) Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin LINGUAGGIO E ORGANIZZAZIONE DEL CALCOLATORE Linguaggio assembly

Dettagli

ARCHITETTURE DEI CALCOLATORI

ARCHITETTURE DEI CALCOLATORI ARCHITETTURE DEI CALCOLATORI l approccio GPU Mariagiovanna Sami 1 Una prima definizione di GPU L elaboratore grafico (Graphic Processing Unit GPU): dispositivo programmabile progettato per eseguire con

Dettagli

Marco Tarini - Università dell'insubria A.A. 2016/17. Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate

Marco Tarini - Università dell'insubria A.A. 2016/17. Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Astrazione e Macchine Virtuali parte 2: in un tipico calcolatore I livelli nei moderni calcolatori 6. Livello delle applicazioni

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

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 di un elaboratore

Architettura di un elaboratore Architettura di un elaboratore Prof. Giulio Maraldi Istituto di Istruzione Superiore Marie Curie Savignano sul Rubicone A.S. 2017/2018 Argomenti 1. Componenti e struttura 2. CPU 3. Memorie 4. Periferiche

Dettagli

La memoria cache. Informatica generale

La memoria cache. Informatica generale La memoria cache Nello schema di funzionamento di un calcolatore il processore continuamente preleva informazioni ed istruzioni dalla memoria centrale e scrive in essa informazioni La memoria centrale,

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

Lezione 15 Il Set di Istruzioni (1)

Lezione 15 Il Set di Istruzioni (1) Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Un quadro della situazione Input/Output Sistema di Interconnessione Registri

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

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

Prefazione Unit`a di misura xiii La memoria cache

Prefazione Unit`a di misura xiii La memoria cache Indice Prefazione Unità di misura xi xiii 1 La memoria cache 1 1.1 Tempo di accesso........................... 1 1.1.1 Funzionamento........................ 2 1.2 Organizzazione............................

Dettagli

Intel Core di 9th gen (Core i9-9900k), Core serie X e Intel Xeon W-3175X per PC desktop - Notebook Italia

Intel Core di 9th gen (Core i9-9900k), Core serie X e Intel Xeon W-3175X per PC desktop - Notebook Italia Intel ha annunciato il processore Intel Core i9-9900k di nona generazione, il migliore processore desktop Intel per il gaming, e ha comunicato che i preordini del nuovo processore sono già attivi. L'annuncio

Dettagli

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi G L O S S A R I O BIT: acronimo di Binary Digit. E l unità elementare di informazione. Può assumere solo il valore 0 o 1. CALCOLATORE: macchina che opera la trasformazione dei dati (informazioni) HARDWARE:

Dettagli

Architettura hardware

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

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

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

Dettagli

memoria virtuale protezione

memoria virtuale protezione Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente.

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

Architettura del Calcolatore

Architettura del Calcolatore Giuseppe Manco Lezione 3 17 Ottobre 2003 Architettura del calcolatore Il calcolatore è uno strumento programmabile per la rappresentazione, la memorizzazione e l elaborazione delle informazioni un calcolatore

Dettagli

Calcolatore: sottosistemi

Calcolatore: sottosistemi Calcolatore: sottosistemi Processore o CPU (Central Processing Unit) Memoria centrale Sottosistema di input/output (I/O) CPU I/O Memoria Calcolatore: organizzazione a bus Il processore o CPU Unità di controllo

Dettagli

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus Architettura del calcolatore Calcolatori (1) Introdotti all'inizio degli anni 1940 Costruiti assemblano componenti elettronici elementari per memorizzare informazioni ed eseguire programmi informazioni

Dettagli

Capitolo 4 Parte 1 Le infrastrutture hardware. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Capitolo 4 Parte 1 Le infrastrutture hardware. Il processore La memoria centrale La memoria di massa Le periferiche di I/O Capitolo 4 Parte 1 Le infrastrutture hardware Il processore La memoria centrale La memoria di massa Le periferiche di I/O Funzionalità di un calcolatore Trasferimento Elaborazione Controllo Memorizzazione

Dettagli

Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella

Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Tipi di memorie Possono essere classificate in base a varie caratteristiche:

Dettagli

Corso di Architettura (Prof. Scarano) 09/04/2002

Corso di Architettura (Prof. Scarano) 09/04/2002 Corso di Architettura (Prof. Scarano) 09/0/2002 Un quadro della situazione Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno

Dettagli

Il Processore. Informatica di Base -- R.Gaeta 27

Il Processore. Informatica di Base -- R.Gaeta 27 Il Processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

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

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

Memorie a semiconduttore

Memorie a semiconduttore Memoria centrale a semiconduttore (Cap. 5 Stallings) Architettura degli elaboratori -1 Pagina 209 Memorie a semiconduttore RAM Accesso casuale Read/Write Volatile Memorizzazione temporanea Statica o dinamica

Dettagli

DIAGRAMMI TEMPORALI relativi all'esecuzione di una istruzione e agli accessi alla memoria:

DIAGRAMMI TEMPORALI relativi all'esecuzione di una istruzione e agli accessi alla memoria: DIAGRAMMI TEMPORALI relativi all'esecuzione di una istruzione e agli accessi alla memoria: 1 Memoria centrale: è costituita da una sequenza ordinata di registri; ciascun registro è individuato da un indirizzo;

Dettagli

Capitolo 8 - Silberschatz

Capitolo 8 - Silberschatz Gestione della memoria centrale Capitolo 8 - Silberschatz Background Un programma in genere risiede su disco in forma di un file binario eseguibile e deve essere portato (dal disco) in memoria e inserito

Dettagli

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 Outline del corso Introduzione Definizioni Motivazioni Storia Architettura Framework Algoritmica Parte I Introduzione Definizioni

Dettagli

Strutture dei sistemi di calcolo

Strutture dei sistemi di calcolo Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di protezione Architettura di un sistema di calcolo

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

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

Informatica di base. e componenti di un computer. Autore: Claudio Traini. Roma ATA E. Sereni 1 agosto 2016

Informatica di base. e componenti di un computer. Autore: Claudio Traini. Roma ATA E. Sereni 1 agosto 2016 Informatica di base Architettura e componenti di un computer Roma ATA E. Sereni 1 agosto 2016 Autore: Claudio Traini Hardware: tutte le componenti fisiche, elettroniche e meccaniche Software: l insieme

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

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

Estensioni all architettura di Von Neumann

Estensioni all architettura di Von Neumann Estensioni all architettura di Von Neumann Vito Perrone Corso di Informatica A per Gestionali Indice Limiti dell architettura di Von Neumann Estensioni all architettura di Von Neumann CISC e RISC 2 1 La

Dettagli

Architettura di un calcolatore: primi cenni introduttivi. Calcolatore: sottosistemi

Architettura di un calcolatore: primi cenni introduttivi. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2011-2012 Architettura di un calcolatore: primi cenni introduttivi Lezione 1 (seconda parte) Prof. Roberto Canonico Università degli Studi di Napoli Federico II

Dettagli

Introduzione alle gerarchie di memoria

Introduzione alle gerarchie di memoria Introduzione alle gerarchie di memoria 1 Un ripasso Circuito sequenziale Segnale di clock Circuito sincrono Temporizzazione sensibile ai fronti Latch tipo S-R Latch tipo D Flip-flop tipo D Register file

Dettagli

Architettura di un calcolatore: primi cenni introduttivi

Architettura di un calcolatore: primi cenni introduttivi Corso di Calcolatori Elettronici I Architettura di un calcolatore: primi cenni introduttivi ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Architettura di un calcolatore Cosa significa

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 U T I L I Z Z O D E L P C E D O F F I C E A U T O M A T I O N 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

Dettagli

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1 Introduzione alle memorie cache Corso ACSO prof. Cristina SILVANO Politecnico di Milano Cristina Silvano, 06/01/2013 versione 2 1 Obiettivo Sommario Livelli della gerarchia di memoria Memoria cache: concetti

Dettagli

ALU e Control Unit. ALU e Control Unit

ALU e Control Unit. ALU e Control Unit Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Unità aritmentica/logica Unità di controllo. 2 M. Violante 1.1 Unità aritmetica/logica Contiene tutti i circuiti

Dettagli

Settimana n.2. Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo.

Settimana n.2. Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo. Settimana n.2 Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo. Contenuti Linguaggi di programmazione Dati e istruzioni Architettura di un elaboratore Uso del compilatore

Dettagli

Le memorie Cache. Sommario

Le memorie Cache. Sommario Le memorie Cache Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento Patterson: 5.2, 5.3 1/36 Sommario Circuito di lettura

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

Int - 1 Fadd - 2 Fmolt - 4 Fdiv - 5

Int - 1 Fadd - 2 Fmolt - 4 Fdiv - 5 Architetture dei processori Appello del 25 Gennaio 2012 A) Un processore Intel basato sulla microarchitettura Nehalem/Westmere è caratterizzato dalla seguente gerarchia di memoria: L1 I-cache e L1 D-cache

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Caratteristiche di un PC

Caratteristiche di un PC Caratteristiche di un PC 1 Principali porte presenti sui personal computer PC Una porta è il tramite con la quale i dispositivi (periferiche o Device ) vengono collegati e interagiscono con il personal

Dettagli

Architettura dei Calcolatori Elettronici

Architettura dei Calcolatori Elettronici Architettura dei Calcolatori Elettronici Prof. Orazio Mirabella L architettura del Calcolatore: esame delle sue caratteristiche Fondamentali Capacità di eseguire sequenze di istruzioni memorizzate Calcolatore

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