1 / 45

Università degli studi di Bologna Facoltà di ingegneria

Università degli studi di Bologna Facoltà di ingegneria. Exploring the MPSoC Design Space: the MPARM environment. Francesco Poletti DEIS Università di Bologna fpoletti@deis.unibo.it. Outline. Archittetture parallele su singolo chip;. Sistema operativo Embedded RTEMS;.

vachel
Download Presentation

Università degli studi di Bologna Facoltà di ingegneria

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Università degli studi di Bologna Facoltà diingegneria Exploring the MPSoC Design Space: the MPARM environment Francesco Poletti DEIS Università di Bologna fpoletti@deis.unibo.it

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

  3. Problem: The Productivity Gap

  4. 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 IDEA… • Lo sviluppo tecnologico permette sempre maggiori capacità d’integrazione. • Difficoltà progettuale.

  5. MPSOC ARCHITECTURE CORE DSP adapter extmem extmem adapter COMMUNICATION HW MPEG CORE extmem adapter adapter extmem ROM RAM

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

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

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

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

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

  11. STbus – Shared Bus

  12. STbus – Full Crossbar

  13. STbus – Partial Crossbar

  14. Read on AMBA bus

  15. Read on STbus

  16. Protocol differences

  17. Comparison

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

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

  20. Shared Memory • COMUNICAZIONE ATTRAVERSO SPAZIO DI MEMORIA CONDIVISA

  21. Distributed Memory • COMUNICAZIONE ATTRAVERSO SCAMBIO DI MESSAGGI

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

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

  24. Canale di comunicazione nodo A nodo B Users Tasks Users Tasks RTEMS RTEMS MPCI Layer MPCI Layer COMUNICATION SCHEME

  25. User task Canale di comunicazione RTEMS MPCI Layer 1 2 4 6 GET_PACKET SEND_PACKET 3 Rilascia un pacchetto Invia il pacchetto Attraverso il canale Rtems_event_send Si accorge che è un task globale Costruisce il messaggio per l’altro processore

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

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

  28. Application level Semaphore Acquisition Shared Memory Write Interrupt Send Semaphore Realise PROC #X SHARED BUS INTERRUPT SLAVE #Y PROC #Y WITHOUT OS SUPPORT SEMAPHORE SHARED MEMORY

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

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

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

  32. ARM DMA control Object table DMA transfer bus master BUS HARDWARE DETAIL Scratch-pad Memory DMA

  33. Portable systems become multi-tasked • Le nuove generazioni di terminali mobili (telefoni, PDA, ...) offriranno un’ampia gamma di applicazioni: • GSM, Agenda, JPEG, MP3, SMS, Email, 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

  34. 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 Task stopped time

  35. 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: 69784 DC misses • Esecuzione in round robin: 85931 DC misses (timeslice 1mS) 5 task interleaved

  36. 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 =

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

  38. MUTUALLY DEPENDENT TASKS RTEMS bootstrap con 5 processori • 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.

  39. INDIPENDENT TASK

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

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

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

  43. Comparison - 1

  44. Comparison - 2

More Related