MPSOC 3 Novembre 2003 1 Università degli studi di Bologna Facoltà di ingegneria Exploring the MPSoC Design Space: the MPARM environment Francesco Poletti.

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

Memoria Virtuale in Linux
Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Gestione del processore
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
SINTESI PUNTI SALIENTI Da shared bus a network on chip Concetto di nodo Standard commerciali shared bus: AMBA, Wishbone, CoreConnect Opzioni avanzate shared.
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Scheduling in Linux (Kernel 2.6)
Cluster openMosix Linux Day ’04 Caserta Ing. Diego Bovenzi.
5-1 Protocolli ad accesso multiplo Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All.
La rete in dettaglio: rete esterna (edge): applicazioni e host
Operating System Concepts
2 luglio 2006URM2 – ING- OOP0304 OL G. Cantone e A. Lomartire 1 Programmazione Orientata agli Oggetti Processi, task e thread Java (ed esempi) Università
MAIS WP5 – Architectures Luca Negri Politecnico di Milano Roma – novembre 05.
Glossario. AGP Accelerated Graphics Port: architettura di bus che permette alle schede grafiche laccesso diretto al bus di sitema (fino a 100MHz), invece.
L’organizzazione della comunicazione di I/O G. Vercelli
Università di Padova Dipartimento di Ingegneria dellInformazione Analisi della Qualità del Servizio in Reti Radio Ad Hoc Special Interest Group on NEtworking.
Sistemi Distribuiti Reti di Calcolatori a.a. 2003/2004
Struttura dei sistemi operativi (panoramica)
Il livello analogico digitale Lezione 3_4 Chip delle CPU e Bus.
Sistemi Operativi Distribuiti: indice
RETI DI ACCESSO E DI TRANSITO NELLE TELECOMUNICAZIONI SATELLITARI DI NUOVA GENERAZIONE G. SCHIAVONI.
FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
1.7 Risorse di sistema Comprendere le risorse di sistema Gestire le risorse di sistema.
Sistemi Operativi SCHEDULING DELLA CPU.
Sistemi Operativi GESTIONE DEI PROCESSI.
Estensioni allarchitettura di Von Neumann Vito Perrone Corso di Informatica A per Gestionali.
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
BUS DI CPU M. Mezzalama - M. Rebaudengo Politecnico di Torino
Reti di Calcolatori Reti di Calcolatori2 Il modello Client/Server I Sistemi di Rete Dal punto di vista del programmatore.
Interazione e sincronizzazione
La schedulazione dei processi
Il modello di riferimento OSI
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Architettura di storage ad alta affidabilita e bilanciamento di carico per volumi centrali e di esperimento A.Brunengo, M.Corosu INFN Sezione di Genova.
BUS DI CPU M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
Risultati complessivi Diego Ragazzi
Threads.
Sistemi ad elevate prestazioni Lezione 1
L’architettura a strati
Il Supercalcolo Architetture dei sistemi di calcolatori.
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
1 Gestione del Processore (Scheduling). 2 Scheduling dei processi È l’attività mediante la quale il sistema operativo effettua delle scelte tra i processi,
Gestione del Processore (Scheduling)
Bus Interface Unit L1 I-CacheL1 D-Cache Fetch/Decode unit Dispatch/Execute unit Retire unit Instruction Pool System Bus L2 Cache 256 KB integrata 4 cicli.
Calcolatori Elettronici Il Processore (2)
Gestione del processore (Scheduler)
1 Amministrazione dei processi nel sistema operativo Unix (Bach: the Design of the Unix Operating System (cap: 6, 7, 8)
Clocking Il segnale di Clock definisce quando i segnali possono essere letti e quando possono essere scritti Fronte di discesa (negativo) Falling edge.
III corso avanzato di calcolo e grid computing Catania 29 settembre Architettura e modelli di programmazione parallela Giovanni Erbacci.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistemi embedded per l’auto: ricevitore GPS
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
Java Distributed Event Service Bringing events to J2EE platform Università degli studi di Bologna Corso di Laurea Specialistica in Ingegneria Informatica.
DIEE, University of Cagliari – Cagliari, October 2006 Architetture on-chip Sistemi di interconnessione di tipo Shared Bus AMBA AHB AMBA AHB Multilayer.
Protocolli avanzati di rete Modulo 3 -Wireless network Unità didattica 3 -Medium Access Control (MAC) Ernesto Damiani Università degli Studi di Milano.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
RETI DI INTERCONNESSIONE OTTICHE Prof. Ing. Carla Raffaelli DEIS - Universita’di Bologna.
Layered Grid Architecture. Application Fabric “Controlling elements locally”: Access to, & control of, resources Connectivity “Talking to Grid elements”:
4.2.3 Valutazione delle prestazioni del livello MAC adattativo per reti veicolari Speaker Giacomo Verticale Politecnico di Milano Gruppo reti di telecomunicazioni.
Strato di accesso alla rete (network access layer); comprende le funzioni che nel modello OSI sono comprese negli strati fisico, di collegamento e parte.
IL NUCLEO Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione dei processi con.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
HARDWARE (2). MEMORIE Due classi di memoria MEMORIA CENTRALE –media capacità - ottima velocità MEMORIA DI MASSA elevata capacità - bassa velocità.
Transcript della presentazione:

MPSOC 3 Novembre Università degli studi di Bologna Facoltà di ingegneria Exploring the MPSoC Design Space: the MPARM environment Francesco Poletti DEIS Università di Bologna

MPSOC 3 Novembre Outline Sistema operativo Embedded RTEMS; Archittetture parallele su singolo chip; Utilizzo della piattaforma MPARM e alcuni benchmark. Sviluppo di un Hardware decidato: DMA sulla piattaforma MPARM;

MPSOC 3 Novembre Problem: The Productivity Gap

MPSOC 3 Novembre MPSOC IDEA…  Lo sviluppo tecnologico permette sempre maggiori capacità d’integrazione.  Difficoltà progettuale. Nuova metodologia di progettazione: System On Chip (SoC). Replicazione di blocchi di Unità funzionali Il progettista si concentra sulle funzionalità e prestazioni dell’intero sistema.

MPSOC 3 Novembre CORE adapter COMMUNICATION HW adapter DSP MPEG adapter ROMRAM extmem CORE MPSOC ARCHITECTURE

MPSOC 3 Novembre

MPSOC 3 Novembre COMUNICATION TOPOLOGIES Bus Condiviso : sviluppo odierno Network => futuro  NETWORK Elevate prestazioni; Alta occupazione d’area; Scalabilità. Network on Chip  BUS CONDIVISO Prestazioni medie; Bassa occupazione d’area; Semplicità dell’interfaccia IP. SHARED BUS MASTER SLAVE MASTER

MPSOC 3 Novembre Outlines of the AMBA bus AMBA (Advanced Microcontroller Bus Architecture) è uno standard di comunicazione on-chip, per un elaboratore embedded. : high performance, high clock frequency system modules - APB: low power peripherals

MPSOC 3 Novembre Master per accedere al bus deve richiederne l’utilizzo all’arbitro. Multiplexer per i dati e per gli indirizzi “pilotati” dall’arbitro. Outlines of the AMBA bus

MPSOC 3 Novembre System architecture – AMBA AHB BUS modules mast[ ] hmaster address[ ] haddr ctrl_sign Address and control mux N N mast[ ] hmaster hwdata[ ] hwdataout Write data mux N N selector hready hsel[ ] readdata[ ] hrdata N N Read data mux hsel[ ] haddr decoder N hreq[ ] ctrl_sign hready selector hmaster hgrant[ ] N N arbiter ctrl_sign haddr hwdataout readdata hmaster ready hsel mast address hwdata hrdata hgrant hready hreq AHB I/F master module AHB I/F slave module

MPSOC 3 Novembre ARBITRATION ALGORITHMS TRE DIFFERENTI POLITICHE DI ARBITRAGGIO : TDMA Round robin SLOT reservation Master #1Master #2Master #N SLOT DURATION Master #1 SLOT RESERVATION Master #2->N Round robin Master #1 Master #2 Master #4 Master #3 Master #1Master #4

MPSOC 3 Novembre STbus – Shared Bus

MPSOC 3 Novembre STbus – Full Crossbar

MPSOC 3 Novembre STbus – Partial Crossbar

MPSOC 3 Novembre Read on AMBA bus

MPSOC 3 Novembre Read on STbus

MPSOC 3 Novembre Protocol differences

MPSOC 3 Novembre Comparison

MPSOC 3 Novembre Mapping applications to MPSoCs Applications Abstract Parallel architecture T1 T2 T3 B E PE PE NoC PE M M IO  Utilizzo dell’hardware come supporto alla comunicazione?  QoS o Best Effort?  Primitive per la comunicazione tra i task e i processori.  Programmazione parallela.

MPSOC 3 Novembre Programming abstractions Modello di programmazione: Seriale:il programmatore non vede alcun tipo di parallelismo. Parallel: multiple threads/tasks Shared memory: comunicazione attraverso una memoria condivisa Message passing: comunicazione in messaggi

MPSOC 3 Novembre Shared Memory COMUNICAZIONE ATTRAVERSO SPAZIO DI MEMORIA CONDIVISA

MPSOC 3 Novembre Distributed Memory COMUNICAZIONE ATTRAVERSO SCAMBIO DI MESSAGGI

MPSOC 3 Novembre REAL TIME EMBEDDED OS  Sistema operativo RTEMS: Compatibile con lo standard POSIX. (primitive di sincronizzazione e comunicazione tra task). Multitasking. Supporto multiprocessore (MIMD). Le comunicazioni originano traffico Transazioni sul bus Impatto sulle prestazioni del sistema  Applicazioni per un numero scalabile di processori.  Comunicazione tra i processori: memoria condivisa come canale di comunicazione, message passing a livello applicativo.

MPSOC 3 Novembre IMPORTANT POINTs: - RTEMS implementa un modello multiprocessore MIMD - Ogni processore è visto dal S.O come un nodo unico - Possibilità di definire oggetti con visibilità locale e globale - Ogni processore ha due tabelle degli Oggetti: Una per gli oggetti (sia locali che globali) istanziati sul processore Una per gli oggetti globali (uguale per tutti i processori)

MPSOC 3 Novembre Users Tasks nodo A RTEMS MPCI Layer MPCI Layer Canale di comunicazione RTEMS Users Tasks nodo B COMUNICATION SCHEME

MPSOC 3 Novembre User task RTEMSMPCI Layer Canale di comunicazione Rtems_ event _send 1 Si accorge che è un task globale 2 GET_PACKET 3 Rilascia un pacchetto Costruisce il messaggio per l’altro processore 4 SEND_PACKET 6 Invia il pacchetto Attraverso il canale

MPSOC 3 Novembre MPCI Layer User task RTEMS Canale di comunicazione Sull’altro nodo … 7 Sente l’arrivo del pacchetto e chiama la rtems_multiprocessing_announcing 8 RECEIVE_PACKET Legge dal canale E inoltra il messaggio Al S.O 9 10 Manda il messaggio Al Task

MPSOC 3 Novembre HARDWARE SIDE RTEMS User task Rtems_message_send MPCI Layer SHARED BUS PROC #Y PROC #X INTERRUPT SLAVE #Y GET_PACKET build the message write to interrupt slave SHARED MEMORY

MPSOC 3 Novembre WITHOUT OS SUPPORT Application level SHARED BUS PROC #Y PROC #X INTERRUPT SLAVE #Y SHARED MEMORYSEMAPHORE Semaphore Acquisition Semaphore RealiseInterrupt Send Shared Memory Write

MPSOC 3 Novembre MPARM INTERCONNECTION ARM INTERRUPT CONTROLLER PRI MEM 4 SHARED MEM SEMAPHORES ARM PRI MEM 3PRI MEM 2 PRI MEM 1 STbus or AMBA

MPSOC 3 Novembre The processing element SystemC wrapper SWARM bus master BUS external int  SWARM accurato al ciclo di clock;  Il wrapper e’ un Modulo SystemC;  Le Memorie e tutti gli altri slave sono Moduli SystemC The simulations are cycle accurate (~ 24 Kcycles/sec)

MPSOC 3 Novembre Development of a DMA SystemC wrapper SWARM bus master BUS external int I/D cache Core Scratch bus master BUS DMA Object table

MPSOC 3 Novembre DMA bus master BUS ARM Scratch-pad Memory DMA transfer DMA control Object table HARDWARE DETAIL

MPSOC 3 Novembre Portable systems become multi- tasked  Le nuove generazioni di terminali mobili (telefoni, PDA,...) offriranno un’ampia gamma di applicazioni:  GSM, Agenda, JPEG, MP3, SMS, , Fax, Internet, Giochi  Molte di queste sono applicazioni dinamiche decise dall’utente e prevedono un ampio utilizzo di dati...  Le case produttrici credono nella possibilità di avere sistemi operativi in grado di supportare efficientemente tale dinamismo.  E.g. Symbiant, Embedded Linux, RTEMS

MPSOC 3 Novembre Round robin scheduling Scheduling di tipo preempitive permette di rispondere piu’ efficientemente alle caratteristiche Real Time. Quanto incide tutto cio’ sul consumo energetico? New task timeTask stopped

MPSOC 3 Novembre Let’s quantify the effect of multi- threading on the memory  Tenuto conto di un’architteture attuale (per sistemi embedded!) con 4kB data cache e 4kB Instruction cache. Esecuzione seriale: DC misses Esecuzione in round robin: DC misses (timeslice 1mS) 5 task interleaved

MPSOC 3 Novembre BENCHMARK La scratch-pad memory consuma meno energia perché é una semplice memoria Come caricare i dati nella scratch: Al boot => HW di controllo che riconosce se un dato è nella scratch; Inserendo chiamate all’interno del codice quando si accede ai dati più critici; X =

MPSOC 3 Novembre Tre differenti benchmark che rappresentano tre diversi tipi traffico sul bus: 1. Task mutuamente dipendenti; PUNTO DI SINCRONIZZAZIONE FLUSSO D’ESECUZIONE COMUNICAZIONE TRA PROCESSI SCAMBIO DI DATI 3. Task in pipeline; 2. Task indipendenti; SHARED BUS Proc.1Proc.2Proc.3 Private Mem.1Private Mem.2Private Mem.3 PERFORMANCE ANALYSIS

MPSOC 3 Novembre MUTUALLY DEPENDENT TASKS  Prestazione misurata: Tempo d’esecuzione  Slot reservation ha le prestazioni migliori per via del carico non bilanciato.  TDMA alloca la banda in modo non efficiente. RTEMS bootstrap con 5 processori

MPSOC 3 Novembre INDIPENDENT TASK

MPSOC 3 Novembre TASK IN PIPELINE  Prestazione misurata: NUMERO DI MATRICI ELABORATE AL SECONDO  Slot reservation converge asintoticamente al round robin  Le prestazioni del TDMA sono quasi invarianti all’aumentare della slot  Basse prestazioni del TDMA

MPSOC 3 Novembre INDIPENDENT TASK Cosa succede nel TDMA con valori di slot piccoli?  La durata della slot uguale al tempo di un ciclo di burst da valori ottimali per il TDMA  Per slot più piccole overhead di terminazione di un burst (early bus termination).

MPSOC 3 Novembre TASK IN PIPELINE Implementazione del meccanismo di comunicazione ad alto livello: Questo meccanismo di hand-shake non è efficientemente supportato dal TDMA Producer Consumer Crea una coda nella sua mem. Bus access Scrive un messaggio nella coda Bus access Richiede un messaggio Bus access Interrompe il producer Bus access Legge la richiesta nella mem. condivisa Bus access Scrive il msg. nella shared Bus access Interrompe il consumer Bus access Legge il msg. dalla shared Bus access

MPSOC 3 Novembre Comparison - 1

MPSOC 3 Novembre Comparison - 2