multiprocessor system-on-chip

105
[email protected] Electrònica integrada Multiprocessor system-on-chip (MP-SoC)

Upload: domenec-valles

Post on 10-May-2015

1.111 views

Category:

Education


10 download

DESCRIPTION

Una introducció als sistemes en xip multiprocessadors, presentada com a treball de l'assignatura Electronica Integrada de 5e curs a Enginyeria La Salle, Barcelona.

TRANSCRIPT

Page 1: Multiprocessor System-on-chip

[email protected]

Electrònica integradaMultiprocessorsystem-on-chip (MP-SoC)

Page 2: Multiprocessor System-on-chip

[email protected]

MP-SoC“Multiprocessor systems-on-chips (MP-SoCs) have

emerged in the past decade as an important class of very large scale integration (VLSI) systems. An MPSoC is a system-on-chip (a VLSI system that incorporates most or all the components necessary for an application) that uses multiple programmable processors as system components. MPSoCs are widely used in networking, communications, signal processing, and multimedia among other applications”

– Wayne Wolf, Fellow, IEEE, Ahmed Amine Jerraya, and Grant Martin, Senior Member, IEEE

• http://www.cs.unc.edu/~montek/teaching/Comp790-Fall11/Home/Home_files/2008Wolf.pdf

Page 3: Multiprocessor System-on-chip

[email protected]

“Coming soon to a screen near you”

ENTENENT

• Introducció als MP-SoC– Definicions.

– Estat de l'art.

– Arquitectura, HW i SW.

– Procès dedisseny.

– Reptes.

• MP-SoC en Altera DE1– “Yes, you can”

FENT

• Eines– Processadors soft-core.

– Sistemes operatius.

– Busos i xarxes

– IP cores

• NIOS II– Introducció ràpida.

• Curiositats

Page 4: Multiprocessor System-on-chip

[email protected]

PresentacionsPlease allow me to introduce myself I'm a man of wealth and taste I've been around for a long, long years (...)Pleased to meet you Hope you guess my name But what's puzzling you Is the nature of my game

[Jagger, Richards et al. 1968]

1, 2, 3, TFC, 4, PSS+5... MGTI 5... 5... ¡5!

Page 5: Multiprocessor System-on-chip

[email protected]

La Salle, circa 1989...

Page 6: Multiprocessor System-on-chip

[email protected]

MP-SoC, ok, però... per què?

Page 7: Multiprocessor System-on-chip

[email protected]

#chucknorrisfacts

• Chuck Norris escriu codi VHDL que compila, simula i funciona en la DE2 sempre a la primera.

Page 8: Multiprocessor System-on-chip

[email protected]

#chucknorrisfacts

• No som Chuck Norris– VHDL és un descriptor (molt bo)... de hardware.– Hi ha processos que es poden definir més simplement en llenguatges

seqüencials.• int hw(FILE *f) {

return fprintf(f,“Hello, world!\n”);

}

Page 9: Multiprocessor System-on-chip

[email protected]

PART1ENTENENT MP-SoC

Page 10: Multiprocessor System-on-chip

[email protected]

Introducció als MP-SoCDefinicions.

Page 11: Multiprocessor System-on-chip

[email protected]

Definicions

• Conceptes bàsics

– Sistema– System-on-Chip (SoC)– Sistemes encastats (embedded systems)– MPSoC (Multi-processador SoC)– MPSoC heterogenis i homogenis– Network-on-Chip (NoC)– IP core

Page 12: Multiprocessor System-on-chip

[email protected]

Introducció als MP-SoCEstat de l'art.

Page 13: Multiprocessor System-on-chip

[email protected]

Característiques

El fet que un MPSoC és un multiprocessador significa que:

• El disseny de programari és una part inherent del disseny general del sistema. No s'enten el disseny d'un MPSoC sense tenir en compte tant el hardware com el software.

• El paral·lelisme és necessari per aprofitar els recursos disponibles de computació.

El disseny de MPSoC és interessant i desafiant, ja que és una barreja de les disciplines de disseny de maquinari i programari:

• Diferent de l'habitual programació paral·lela.

• Prenent avantatge de la integració: ample de banda, latència, major accés a la memòria.

Page 14: Multiprocessor System-on-chip

[email protected]

Característiques

El fet d'usar un multi-processador no només té implicacions de software, també en el hardware:

• S'estableix una barrera de velocitat al voltant del 1GHZ. Més funcionalitat implicará més paral·lelisme.

• S'obtenen beneficis en termes de consum energètic. Aquest és un aspecte clau en un dels àmbits d'aplicació principal dels MPSoC, que són els dispositius mòbils.

– Exemple: Una CPU RISC única a 620MHz pot lliurar una capacitat de procés de 900MIPS al cost de consumir 365mW. Tres CPU RISC menors a 225MHz poden donar cada una 330 MIPS consumint tan sols 32mW. S'obté un 10% més de capacitat amb només un 25% del consum d'energia.

Page 15: Multiprocessor System-on-chip

[email protected]

Aplicacions• Es poden trobar exemples d'aplicació en sistemes prou coneguts

(productes i fotografies de 2006)– Emotion Engine de la Sony Playstation 2

• 3 processadors (general purpose CPU, 2 vector processing units)

– CELL processor de Sony, Toshiba, IBM (Playstation 3)• 9 processadors (CPU de propòsit general, 8 elements de

procés)

– Nomadik (de ST) per mòbils Nokia– ST7200 (de ST) per DVD o HDTV

• 5 processadors (CPU de propòsit general, 4 processadors digitals de senyal)

– DaVinci (Texas Instrument) for cameras• 3 processadors (CPU de propòsit general, 2 processadors

digitals de senyal)

– Diopsis D940 (ATMEL) processador paral·lel massiu (Petaflop)• 3 processadors (CPU de propòsit general, 1 DSP VLIW, 1

processor de xarxa) × 2048

Page 16: Multiprocessor System-on-chip

[email protected]

Tendències del mercat• Onades tecnològiques

– D'on venim i on anem.

Page 17: Multiprocessor System-on-chip

[email protected]

Tendències del mercat

• Les onades de Makimoto– 1947 to 1957 : Dawn of Semiconductor Age– 1957 to 1967 : Era of Transistor – 1967 to 1977 : Era of IC/LSI – 1977 to 1987 : Era of MPU/Memory – 1987 to 1997 : Era of ASIC – 1997 to 2007 : Era of Field Programmability

Page 18: Multiprocessor System-on-chip

[email protected]

Tendències del mercat

• Les onades de Makimoto responen a un pèndol, com les marees responen a la lluna.

– Quan s'han assolit els màxims nivells de costumització, el pèndol es començarà a moure cap a l'estandarització per les necessitats de rapidesa per arribar al mercat, d'eficiència de cost i d'ficiència operacional.

– En sentit invers, pot ajudar a moure la necessitat de diferenciació, l'afegiment de valor o desequilibris entre demanda i provisionament. En sentit contrari a aquests facilitadors reactius de canvi, per sota del pèndol en cada un dels dos extrems empenyen cap amunt els facilitadors proactius de la tendència que expresa el pèndol.

Page 19: Multiprocessor System-on-chip

[email protected]

Tendències del mercat

• El cicle d'estandarització fins 2007 ha de ser seguit per un cicle de customització. Aquest cicle de 10 anys en què ens trobem ara coincideix al seu temps amb el que Steve Trimberger de Xilinx defineix com la quarta edat de les FPGA, la de l'especialització.

• Les quatre edats de les FPGA:

– 1. 1984-1991 Invenció

– 2. 1992-1999 Expansió

– 3. 2000-2007 Acumulació

– 4. 2008-2015 Especialització

Page 20: Multiprocessor System-on-chip

[email protected]

I els estudiants?• Com a futurs professionals, molts reptes, moltes opcions.

Page 21: Multiprocessor System-on-chip

[email protected]

Introducció als MP-SoCArquitectura hardware.

Page 22: Multiprocessor System-on-chip

[email protected]

Arquitectura• Per les característiques que s'han donat, és evident que

cal pensar tant en l'arquitectura de software com en la de hardware.

– El maquinari es compon de:

• CPU

• Memòria

• IP cores (Intellectual Properties)

• Xarxa de comunicació

• Mecanismes de comunicació (DMA)

• Interfície de xarxa

• Perifèrics

– El programari s'està executant en aquesta arquitectura

• En paral·lel

• Basant-se en el suport de maquinari per a la sincronització, comunicació, coherència...

• Res que no s'hagi inventat.

Page 23: Multiprocessor System-on-chip

[email protected]

Arquitectura hardware, components• CPU

– CPU de propòsit general, DSP (VLIW), ASIP. Proveïdors i/o famílies de processadors: ARM, MIPS, SPARC, PowerPC, Intel, Motorola, ST, tensile, ATMEL, ...

• Memòria

– Locals o globals, compartides o privades, cachès, distribuides

– Diferents tipus de tecnologia: ROM, DRAM, SRAM, SDRAM, Flash, ...

– Diferents tipus d'ús: memòria de dades i de programa, cachès, scratchpad (memòria interna d'alta velocitat per a càlculs)

• IP cores (Intellectual Properties)

– Components específics que acceleren una determinada tasca, lliurats pels proveïdors IP.

• Perifèrics

– Específics o estàndard d'I/O (ports sèrie o paral·lel, USB...)

• Xarxes de comunicació simple

– Busos (AHB, STbus...)

• Xarxa de comunicació d'alt rendiment

– NOC (Network on Chip) Una NoC interconnecta els processadors en el SoC

• Interfície de xarxa

– Component capaç de fer l'adaptació física i estructural entre una xarxa de comunicacions i un altre component (CPU, IP, xarxa de comunicació...)

• DMA (Direct Memory Access)

– La DMA permet que certs subsistemes de maquinari puguin accedir a la memòria del sistema per a la lectura i/o escriure independentment de la CPU. És comunament usat pel controlador de disc dur, gràfics i targetes de so, i en comunicació intra-xip dins del MPSoC.

• Components implícits

– Controlador d'interrupcions, controlador de memòria, àrbitrador ...

Page 24: Multiprocessor System-on-chip

[email protected]

Xarxa d'interconnexió• En els busos (shared medium networks)

existeix un medi comú compartit on es troben connectats a la vegada tots els processadors presents en el sistema.

• En les xarxes es forma una topologia basada en el conjunt de camins de comunicació entre els diversos processadors.

• En una xarxa directa cada processador té un switch que usa per comunicar-se directament amb els switches d'altres processadors.

• En una xarxa indirecta el processador s'associa a un switch que li dóna entrada a la xarxa, dins de la qual poden haver un o més switches d'enrutament no associats a cap processador.

• Una xarxa híbrida té característiques barrejades de les anteriors.

Page 25: Multiprocessor System-on-chip

[email protected]

Exemples de topologia

• Shared bus• Pipeline• Crossbar switch

Page 26: Multiprocessor System-on-chip

[email protected]

Exemples de topologia

• Xarxa de commutació de paquets.• Spidergon (polígon aranya)

Page 27: Multiprocessor System-on-chip

[email protected]

Exemples d'arquitectura hardware• MPSoC acadèmic implementat sobre FPGA Stratix, on diversos processadors

(homogenis) Nios d'Altera es comuniquen usant un bus HIBI (hierarchical segmented bus).

• La imatge correspon compresor MPEG-4.

Page 28: Multiprocessor System-on-chip

[email protected]

Exemples d'arquitectura hardware• Exemple heterogeni i comercial, a sota l'STi7200: Triple display, HDTV set-top box,

dual decoder per H.264 i VC-1, amb 150 millions de transistors.

Page 29: Multiprocessor System-on-chip

[email protected]

Exemples d'arquitectura hardware• Atmel Diopsis D940++, un DSP format per 9 "tiles", cada una amb un DSP i un DNP

(processador de xarxa) que les interconnecta mitjançant un spidergon.

Page 30: Multiprocessor System-on-chip

[email protected]

Introducció als MP-SoCArquitectura software.

Page 31: Multiprocessor System-on-chip

[email protected]

Arquitectura SW: Capes

• Aplicació– La capa d'aplicació pot ser una descripció multi-tasca o una funció

de tasca única de l'aplicació específica que s'executa en el processador de software del subsistema.

– Una tasca o fil d'execució (thread) és un procés que funciona de manera seqüencial.

– Múltiples tasques es poden executar en paral·lel per una sola CPU o per múltiples CPUs

– En una sola CPU, el multithreading es produeix compartint talls de temps (time slicing), on un sol processador dedica temps a diverses tasques. Aquest canvi de context de les tasques és administrat per un sistema operatiu.

Page 32: Multiprocessor System-on-chip

[email protected]

Arquitectura SW: Capes

• Sistema Operatiu (OS)– El sistema operatiu gestiona la distribució dels recursos de

l'arquitectura. És responsable de la inicialització i la gestió de les tasques d'aplicació i la comunicació entre elles.

– Ofereix serveis com ara la programació en el temps de tasques, canvi de context, sincronització i gestió d'interrupcions

Page 33: Multiprocessor System-on-chip

[email protected]

Arquitectura SW: Capes

• Comunicació– Aquesta capa s'encarrega de gestionar les operacions

d'entrada/sortida (I/O) i, en general la interacció amb els components de maquinari i dels altres subsistemes.

– Pot incloure diferents protocols de comunicació implementats per programari o per comunicació amb components de maquinari dedicats (direct memory access, DMA).

Page 34: Multiprocessor System-on-chip

[email protected]

Arquitectura SW: Capes

• HAL (Hardware Abstraction Layer)– El HAL proporciona una interfície de programació única per

manipular els dispositius de maquinari. Per única s'entén que es idèntica (segons un estàndard) amb independència del maquinari que hi hagi per sota.

– El HAL és una capa prima de programari que depèn totalment del tipus de processador que s'executarà el programari, però també depèn dels recursos de maquinari que interactuen amb el processador.

Page 35: Multiprocessor System-on-chip

[email protected]

Necessitat d'una API

• Per estandaritzar accesos entre capes cal una convenció que defineixi quines són les operacions, les dades que prenen d'entrada i sortida i l'efecte esperat sobre el sistema. Això permet la portabilitat de tot allò desenvolupat sobre l'API.

• Una interfície de programació d'aplicacions (API) és una especificació basada en codi font i destinada a ser utilitzada com una interfície de components de programari per comunicar-se entre ells. Una API pot incloure especificacions per a les rutines (funcions, procediments), estructures de dades, classes d'objectes i variables.

– Una especificació d'API pot prendre moltes formes, incloent un estàndard internacional com POSIX o documentació del proveïdor, com ara l'API de Microsoft Windows, o les biblioteques d'un llenguatge de programació, per exemple, l'Standard Template Library de C++ o la Java API.

• Un exemple de portabilitat es la pròpia API de POSIX (Portable Operating System Interface), usada tant en el món MPSoC com en el món Unix, on va nèixer com estàndard de l'IEEE. Existeix una implementació anomenada Cygwin pels SO Windows que permet executar software Unix en aquests SO.

Page 36: Multiprocessor System-on-chip

[email protected]

Necessitat d'un toolchain• A diferència dels microprocessadors convencionals, que tenen un joc d'instruccions

predefinit, quan es creen processadors a mida per un MPSoC és possible fer el mateix per al joc d'instruccions que executen, que poden ser modificats segons les necessitats del projecte (instruction set architectures, ISA). Exemples de modificacions possibles són: El tamany del fitxer de registres de la CPU, "endianness" (big o no), unitats funcionals especials (multiplicadors, DSP's...), interfaces de memòria local, interfaces de memòria de sistema per connexions directes al bus del xip, ports de debug o trace o JTAG...

• Atés que posteriorment s'han de compilar aplicacions per a que funcionin en una ISA que no existia cinc minuts abans, cal bastir una metodologia que permeti facilitar totes les eines necessàries en el nou joc d'instruccions, d'una forma simple i fins i tot automatitzada.

• Del món open source i dels projectes GNU es pren el concepte de tool-chain, que és la forma de generar les eines de desenvolupament d'una plataforma des d'una altra. És el cas del sabor Unix NetBSD (el més portable gràcies a... si, premi! la seva HAL) que genera totes les seves distribucions binàries a partir d'una plataforma i fa compilacions a través de tool-chain. De forma simplificada, en la plataforma X es pot crear un compilador de C cc que executa en X però genera codi per Y. A partir d'aquí es construeixen tots els binaris necessaris per Y.

Page 37: Multiprocessor System-on-chip

[email protected]

Introducció als MP-SoCProcès de disseny.

Page 38: Multiprocessor System-on-chip

[email protected]

Procés tradicional vs pràctic• Procés tradicional

– El procés de disseny tradicional té dos punts de partida:

• La definició de la HAL API, habitualment donada amb la pròpia plataforma de hardware.

• El particionat de l'aplicació, que consisteix a determinar quines parts corresponen al disseny de hardware i quines al disseny de software.

Procés pràctic– En la realitat, la plataforma de hardware és massa

costosa de desenvolupar i es fa servir la que faciliten els fabricants, amb característiques definibles per l'usuari.

– El disseny de HW queda centrat en la disposició dels blocs constructius disponibles en la tecnologia triada.

Page 39: Multiprocessor System-on-chip

[email protected]

Nivells d'abstracció

• Un nivell d'abtracció és una forma d'amagar els detalls d'implementació d'una funcionalitat durant el procés de disseny.

• Les necessitats de detall apareixen de forma seqüencial en el procés de disseny, raó per la qual no és necessari fer-ho tot a la vegada.

• A mesura que s'avanci en el disseny el nivell de detall s'aproparà al detall final.

• Es distingeixen quatre nivells d'abstracció.

Page 40: Multiprocessor System-on-chip

[email protected]

Nivells d'abstracció

• System architecture– El particionat i mapejat de l'aplicació cap a l'arquitectura de destinació – L'assignació de la comunicació entre els recursos de maquinari

disponibles.

• Virtual architecture– Tansformar les funcions de l'aplicació en tasques de codi C.– L'assignació de la comunicació als recursos de maquinari disponibles en

l'arquitectura final.

• Transaction-accurate architecture– Integrar el sistema operatiu i el component de comunicació amb el codi de

les tasques de l'aplicació– Adaptar el programari a la sincronització del protocol de comunicacions.

• Virtual prototype– La integració de l'API de la HAL al programari – L'establiment de l'assignació de memòria final.

Page 41: Multiprocessor System-on-chip

[email protected]

Introducció als MP-SoCReptes.

Page 42: Multiprocessor System-on-chip

[email protected]

Reptes estructurals• La tecnologia disponible ve donada per les estructures que es

poden crear, que es poden tipificar segons paràmetres com la quantitat de processadors i la mida dels circuits.

Page 43: Multiprocessor System-on-chip

[email protected]

Reptes estructurals• El número d'elements de procés té previst un creixement exponencial

en els propers anys. Per assolir-ho, serà necessari que els circuits redueixin la mida dels seus elements.

Page 44: Multiprocessor System-on-chip

[email protected]

Aspectes claus de l'arquitectura• El número i les configuracions de processadors requerits per a l'aplicació.

• La seva homogeneïtat o la seva heterogeneïtat.

• Les comunicacions entre processadors, triar un mix adequat entre busos estàndard, comunicacions punt a punt, memòria compartida i plantejaments Network-on-Chip.

• Concurrència, sincronització, control i models de programació. Habitualment serà apropiat usar més d'un model de programació.

• Jerarquies de memòria, tipus, quantitat i mètodes d'accés, junt a l'estimació de la latència requerida.

• Modes especials d'operació i controls per a la reducció de la potència requerida per tal de rebaixar el consum energètic.

• Escalabilitat del disseny i de la plataforma. A mesura que hi hagi major capacitat d'integració, quants processadors es faran servir, 10, 100, 1000? Cada quan s'haurà de fer un redisseny major de l'arquitectura?

• Particionat d'aplicacions, ús de les API i models de comunicació adequadts, i eines EDA, ESL i ESW adequades per a l'exploració de l'espai de disseny.

Page 45: Multiprocessor System-on-chip

[email protected]

Reptes de disseny

• Els reptes a l'hora de dissenyar un MPSoC sobre la tecnologia disponible passen per:– Disseny de maquinari (hardware, HW)– Disseny de programari (software, SW)– Validació tant de SW com de HW (és a dir, simulació)– Integració (interfaces) de HW i SW

• Amb les següents restriccions– Limitacions de temps (càlculs en temps real)– Eficiència energètica– Eficiència en l'ús de l'àrea del xip– Capacitats de connexió I/O (input/output)– ...

Page 46: Multiprocessor System-on-chip

[email protected]

Reptes de disseny

• Interfaces de HW i SW– Problemes de cost

• El software depenent de hardware és tediós de desenvolupar i difícil de depurar i validar.

• El software no optimitzat té una major emprempta (footprint) i per tant una major necessitat de memòria interna.

– Problemes de rendiment• Una interface subòptima entre HW i SW introdueix latències no

desitjables.• El processador, la cachè i la memòria interna són

responsables del major consum d'energia dins del sistema.

Page 47: Multiprocessor System-on-chip

[email protected]

Reptes de disseny

• Models de programació– Els dos aspectes que fan difícil de programar un MPSoC

son la concurrència i la por a la concurrència. – Dins d'un MPSoC els diversos processadors es poden

asimilar a "un ramat de nyús corrent a través de d'una sabana de recursos de memòria, comunicacions i consum d'energia" (D. Sos et al, 2012).

– Els desenvolupadors de software acumulen 6 decades d'experiència definint els algorismes com una seqüència ordenada d'instruccions, però no han vist grups de més d'un nyú d'aprop.

Page 48: Multiprocessor System-on-chip

[email protected]

Reptes de disseny

• Models de programació– Els multiprocessadors es dividiran en dues grans

categories:• SMP (symmetric multi-processing)• AMP (asymmetric multi-processing)

– Com a solució s'aplica:• L'ús d'API com OpenMP o Message Passing Interface (MPI)• Models estandaritzats de threads com POSIX.• Buscar el mix adequat de tècniques.

Page 49: Multiprocessor System-on-chip

[email protected]

Reptes de disseny• Sincronització i control

– Apareixen problemàtiques similars a les dels sistemes operatius en temps real (RTOS) pel que fa a prevenció del deadlock, inversió de prioritat, gestió de la prioritat, etc. El dissenyador es pot plantejar:

• Es deixa el control de l'execució de les tasques a un RTOS o es delega en un mecanisme d'scheduling a mida?

• Es dissenyen tasques que treballen altament i freqüentment comunicades entre si i en processadors similars, o es comuniquen amb missatgeria a alt nivell i infreqüentment en el temps tasques en diversos dominis (com ara audio, video o comunicacions) implementades en processados dedicats i específics?

– El sistema a més no és sempre el mateix, la recerca de l'eficiència pot portar a executar operacions que alteren la seva pròpia arquitectura dinàmicament:

• Apagar parts que no estan en ús per estalviar energia.• Escalar el voltatge i la freqüència d'un processador segons se li

requereixi (el que es coneix com Dynamic Voltage and Frequency Scaling, DVFS)

Page 50: Multiprocessor System-on-chip

[email protected]

Reptes de disseny

• Depuració– No importa l'ús de les millors metodologies, el disseny final del software

tard o d'hora s'ha de probar, sigui ja en una implementació real del MPSoC o un model cycle-accurate. Es clau la disponibilitat d'eines que permetin debugar el codi que s'executa.

– Ara bé, comparats amb un debugger tradicional, en un MPSoC les eines de depuració han de suportar una depuració "multiparadigma", o en altres paraules ser capaces de depurar entre diversos models de programació.

– Es trobaran subsistemes dèbilment acoblats que executen diverses parts de l'aplicació, comunicant per mètodes diversos, usant jocs d'instruccions tunejats, escrits en diversos llenguatges de programació...

– Oferir una vista coherent del sistema per fer possible arribar a les causes dels problemes i treure'n l'entrellat no és una tasca trivial.

– La depuració concurrent és una tasca formidable.

Page 51: Multiprocessor System-on-chip

[email protected]

MP-SoC en Altera DE1"Yes, you can"

Page 52: Multiprocessor System-on-chip

[email protected]

MP-SoC en Altera DE1

• Treball de fi de carrera d'un equip de dos estudiants finlandesos.

– Tot en software open source.

– Vida més enllà de Quartus.

– Adaptat a les restriccions de l'entorn.

Page 53: Multiprocessor System-on-chip

[email protected]

Hardware proposat• Respecte al que ha descrit aquest estudi per MPSoC

tenim:– Dos processadors independents, amb les seves memòries locals.– Un HIBI per a la comunicació entre processos. HIBI és un NoC

avant-la-lettre, encara que en l'exemple l'enrutament entre dos nodes és òbviament simple.

Page 54: Multiprocessor System-on-chip

[email protected]

Tria de dispositius físics• Processador Leon3

– http://en.wikipedia.org/wiki/LEON

– LEON is a 32-bit CPU microprocessor core, based on the SPARC-V8 RISC architecture and instruction set. It was originally designed by the European Space Research and Technology Centre (ESTEC), part of the European Space Agency (ESA), and after that by Gaisler Research. It is described in synthesizable VHDL.

• Advanced Microcontroller Bus Architecture (AMBA)

– http://en.wikipedia.org/wiki/Advanced_Microcontroller_Bus_Architecture

– The Advanced Microcontroller Bus Architecture (AMBA) is used as the on-chip bus in system-on-a-chip (SoC) designs. Since its inception, the scope of AMBA has gone far beyond microcontroller devices, and is now widely used on a range of ASIC and SoC parts including applications processors used in modern portable mobile devices like smartphones.

• Heterogeneous IP Block Interconnection (HIBI)

– http://en.wikipedia.org/wiki/Open_Core_Protocol

– HIBI (Heterogeneous IP Block Interconnection) is a wrapper-based, scalable, and parameterizable Network-onChip targeted for efficient integration of coarse grain (e.g. several kilogates) components.

Page 55: Multiprocessor System-on-chip

[email protected]

Compilació creuadaL'arquitectura desplegada corre sobre un compilador Sparc estrany i usa

un sistema operatiu encara més exòtic. Les possibilitats de trobar a Google un link de download és escasa. Per això, tal i com es va descriure a la introducció, es crea una cadena de compilació creuada.

• Compilar de forma creuada el propi sistema operatiu eCos per a Leon3.

• Compilar les pròpies aplicacions en C per a la plataforma Leon3.

La compilació és una versió que executa en CygWin del compilador gcc que genera codi binari per a Leon 3. La seva línia de comandes és més que familiar, llevat del nom del binari gcc que indica per a quina plataforma genera el codi.

$ sparc-elf-gcc -g -Ixyz_install/include -Lxyz_install/lib -Ttarget.ld -nostdlib hello.c -o hello

Per a més abundància, el propi CygWin és una implementació POSIX compliant per tenir eines Unix sobre Windows.

Page 56: Multiprocessor System-on-chip

[email protected]

Sistema operatiu eCos• L'ús d'un sistema operatiu permet tot un seguit de serveis

per al desenvolupador.• La tria ha estat per eCos ve imposada per l'escasetat de

memòria, en tant que s'adapta a un marge entre desenes i cents de KB.

• Respecte les capes, facilita la compatibilitat amb POSIX.– http://en.wikipedia.org/wiki/ECos – eCos (embedded configurable operating system) is a free and

open source real-time operating system intended for embedded systems and applications which need only one process with multiple threads. It is designed to be customizable to precise application requirements of run-time performance and hardware needs. It is implemented in C/C++ and has compatibility layers and APIs for POSIX and µITRON.

Page 57: Multiprocessor System-on-chip

[email protected]

PART2FENT MP-SoC

Page 58: Multiprocessor System-on-chip

[email protected]

EinesProcessadors soft-core.

Page 59: Multiprocessor System-on-chip

[email protected]

Processadors soft-core• Molts per triar i remenar!• Però amb restriccions de tipus diversos...

Page 60: Multiprocessor System-on-chip

[email protected]

Soft-cores de 64 bits

• S1 Core– http://www.srisc.com/?s1 – Implementació open-source de l'arquitectura SPARCv9 de

64 bits, cosa que la fa única entre la resta. Va ser cedida per Sun el 2006. Es una versió retallada de l'UltraSparc T1, que amb prou feines cap en la majoria d'FPGA, molt menys la versió original de 8 nuclis per a entorns crítics

Page 61: Multiprocessor System-on-chip

[email protected]

Soft-cores de 32 bits• LEON3 i LEON2

– http://www.gaisler.com/cms/index.php?option=com_content&task=view&id=13&Itemid=53

• OpenRISC 1200

– http://www.opencores.org/projects.cgi/web/or1k/openrisc_1200

• MicroBlaze i clons

– http://www.xilinx.com/products/design_resources/proc_central/microblaze.htm

– http://www.opencores.org/projects.cgi/web/aemb/overview

– http://www.ccm.ece.vt.edu/~scraven/openfire.html

• Nios II

– http://www.altera.com/products/ip/processors/nios2/ni2-index.html

• LatticeMico32

– http://www.latticesemi.com/products/intellectualproperty/ipcores/mico32/index.cfm

• Cortex-M1

– http://www.arm.com/products/CPUs/ARM_Cortex-M1.html

– http://www.actel.com/products/mpu/CortexM1/

– http://www.altera.com/products/ip/processors/32_16bit/m-arm-cortex-m1.html

Page 62: Multiprocessor System-on-chip

[email protected]

Soft-cores de 16 bits

• Categoria que apareix una mica deserta, sembla que hom opti o bé per anar en gran amb 32 bits o es constrenyi a l'economia dels 8 bits.

• Hi ha un DSPuva16 de la Universidad de Valladolid, però la pàgina del projecte fa temps que és morta.

Page 63: Multiprocessor System-on-chip

[email protected]

Soft-cores de 8 bits

• PicoBlaze i PacoBlaze– http://www.xilinx.com/products/ipcenter/picoblaze-S3-V2-Pro.htm– http://bleyer.org/pacoblaze/

• LatticeMico8– http://www.latticesemi.com/products/intellectualproperty/

referencedesigns/8bitmicrocontrollermico8.cfm

Page 64: Multiprocessor System-on-chip

[email protected]

Màquines virtuals Java

• Java Optimized Processor (JOP)– http://www.jopdesign.com/ – Completem el repàs dels possibles soft-cores amb una

opció un tant exòtica, com pot ser una màquina virtual Java implementada directament en hardware. Els avantatges del llenguatge Java sobre el C la fan no descartable, junt al fet que funcioni en diversos sistemes en producció.

Page 65: Multiprocessor System-on-chip

[email protected]

EinesSistemes operatius.

Page 66: Multiprocessor System-on-chip

[email protected]

Sistemes operatius en temps real• De sistemes operatius en temps real (Real Time

Operating Systems, RTOS) n'hi ha gran quantitat, òbviament no només per soft-cores sino per tota mena de processadors.

Page 67: Multiprocessor System-on-chip

[email protected]

On es Linux?!

• Pròpiament dit, Linux no és un sistema operatiu en temps real.– http://www.ibm.com/developerworks/linux/library/l-real-

time-linux/– Anatomy of real-time Linux architectures– It's not that Linux® isn't fast or efficient, but in some cases

fast just isn't good enough. What's needed instead is the ability to deterministically meet scheduling deadlines with specific tolerances. Discover the various real-time Linux alternatives and how they achieve real time from the early architectures that mimic virtualization solutions to the options available today in the standard 2.6 kernel.

Page 68: Multiprocessor System-on-chip

[email protected]

Linux en Altera• Per als Alteramaniàtics hi ha l'opció d'instal·lar un

Linux sobre Nios II. – http://www.altera.com/devices/processor/nios2/tools/

embed-partners/ni2-linux-partners.html– With the introduction of a Memory Management Unit (MMU)

for the Nios® II processor, you have a wide range of Linux providers from which to choose. From commercial support from industry leaders to a free open-source distribution, Altera’s embedded Linux partners offer the right level of support for your Linux project.

Page 69: Multiprocessor System-on-chip

[email protected]

EinesBusos i xarxes

Page 70: Multiprocessor System-on-chip

[email protected]

Busos i xarxes

• Advanced Microcontroller Bus Architecture (AMBA)– http://en.wikipedia.org/wiki/Advanced_Microcontroller_Bus_Architecture– The Advanced Microcontroller Bus Architecture (AMBA) is used as the on-

chip bus in system-on-a-chip (SoC) designs. Since its inception, the scope of AMBA has gone far beyond microcontroller devices, and is now widely used on a range of ASIC and SoC parts including applications processors used in modern portable mobile devices like smartphones.

• Avalon (Altera)– http://en.wikipedia.org/wiki/Nios_II#Avalon_switch_fabric_interface – Nios II uses the Avalon switch fabric as the interface to its embedded

peripherals. Compared to a traditional bus in a processor-based system, which lets only one bus master access the bus at a time, the Avalon switch fabric, using a slave-side arbitration scheme, lets multiple masters operate simultaneously.

Page 71: Multiprocessor System-on-chip

[email protected]

Busos i xarxes

• Wishbone– http://en.wikipedia.org/wiki/Wishbone_(computer_bus)– The Wishbone Bus is an open source hardware computer bus intended to let the

parts of an integrated circuit communicate with each other. The aim is to allow the connection of differing cores to each other inside of a chip. The Wishbone Bus is used by many designs in the OpenCores project.

– A large number of open-source designs for CPUs and auxiliary computer peripherals have now been released with Wishbone interfaces. Many can be found at OpenCores, a foundation that attempts to make open-source hardware designs available.

• IBM CoreConnect– http://en.wikipedia.org/wiki/CoreConnect – CoreConnect is a microprocessor bus-architecture from IBM for system-on-

a-chip (SoC) designs. It was designed to ease the integration and reuse of processor, system, and peripheral cores within standard and custom SoC designs.

Page 72: Multiprocessor System-on-chip

[email protected]

Busos i xarxes• Open Core Protocol

– http://www.ocpip.org/– As seen in:

• Apple MacBook Air• Blackberry Playbook• Tablets iOS: Apple iPad / iPad 2• Tablets Android: Motorola Xoom i Samsung Galaxy Tab• Media players: Apple iPod Touch, Viliv X7, iRiver• Televisors: Toshiba, Samsung• Telèfons Android: HTC Evo, HTC Desire, Samsung Galaxy, Google

Nexus One• Telèfons iOS: Apple iPhone 4.• Telèfons diversos: Nokia N810, Palm Pre 2 i molts altres.• Routers: Linksys, Buffalo, Apple Airport i més.• Gaming: Nintendo Wii, Sony Playstation 2 i 3.• HD set top boxes: Vudu XL, Apple TV.• Netflix: Roku player.

Page 73: Multiprocessor System-on-chip

[email protected]

Busos i xarxes• Xpipes

– Projecte universitari (2002) de conmutació de paquets en una NoC.– Concepte de Network Interface (NI), que abstreu el nucli connectat dels

detalls de funcionament de la xarxa (paquetització transparent als components que segueixen treballant amb canals continus de dades).

– La interfície NI utilitza OCP com a protocol de comunicacions punt a punt.– Capacity planning dels enllaços.

Page 74: Multiprocessor System-on-chip

[email protected]

EinesIP cores

Page 75: Multiprocessor System-on-chip

[email protected]

IP-cores• Un IP-core (nucli de propietat intelectual, també dit

IP-block) és al disseny microelectrònic el que una llibreria de codi és a l'escriptura d'una aplicació de software:

• Un component desenvolupat i llicenciat per qui en té la propietat intelectual i usat en dissenys de tercers, tant per ASICs com per FPGAs.

• El terme deriva de la importància que té en aquest mercat la propietat intellectual, transmesa tant per llicenciament comercial com per llicències de programari lliure.

• Soft-cores i hard-cores.

Page 76: Multiprocessor System-on-chip

[email protected]

Ip-cores, hard & soft. Core, not ware

• Hard-core– Analògics o digitals– Es donen com a layouts de transistors fortament orientats a

la tecnologia i processos de fabricació del foundry (fàbrica de chips) encarregada de crear el sistema físic.

– Això pot aportar avantatges quant als recursos consumits en el chip o la predictabilitat dels timings, però fa pràcticament inviable que el dissenyador que usa el core pugui comprendre el seu funcionament i/o modificar-lo.

Page 77: Multiprocessor System-on-chip

[email protected]

Ip-cores, hard & soft. Core, not ware• Soft-core

– Descripcions en un llenguatge d'alt nivell de descripció de hardware (HDL) que els fa portables a tots els dispositius que suporten síntesi des d'aquests llenguatges.

– També és possible que s'entreguin com un netlist RTL, l'expressió en àlgebra booleana del procés. Amb aquestsa opció l'IP-core és virtualment portable a cada tecnologia.

– S'ha fet l'analogia que el netlist equival al llenguatge ensamblador del software (discutible, els llenguatges d'alt nivell són portables via compilador, l'ensamblador depén del processador).

– A la fi, la classificació com a soft-core depén de que en el flux de disseny es puguin seguir les etapes de síntesi, emplaçament i encaminament de les connexions.

Page 78: Multiprocessor System-on-chip

[email protected]

Soft-cores• Dins dels soft-cores es pot fer una distinció basada

en la programabilitat o no del nucli:– Els soft-core més importants són els microprocessors, el

que no treu que es complementin amb controladors de perifèrics com ara SDRAM, ethernet, display LCD, audio AC'97 i USB. Aquests al seu temps poden requerir interfícies per rebre senyals analògiques, d'alt voltatge, externes al chip o no, etc.

– Per contra, hi ha dispositius no programables que realitzen tasques fixes per hardware, prenent avantatge del procés paral·lel front al procés seqüencial, com poden ser decodificació d'audio MP3, GPU 3D, decodificació digital de vídeo, i funcions DSP com FFT, DCT, o codificació Viterbi.

Page 79: Multiprocessor System-on-chip

[email protected]

Soft-cores

• Tipus de soft-cores– http://en.wikipedia.org/wiki/List_of_semiconductor_IP_core_vendors

Analog-to-Digital ConvertersBroadband modem and error correctionChip interconnection integrityDecimal Floating Point ArithmeticDigital AudioDigital to Analog ConvertersDRAM controllers i DRAM PHYsEthernet interface controllersEthernet PHYsGeneral purpose microprocessorsHDMIISP

I/O pad librariesMIPIMobile StorageNAND Flash memory controllersNAND Flash memory PHYsOn-chip SRAMsOn-chip non-volatile memoryOn-chip BusPhase Locked Loops (PLLs)Power ManagementProcess monitoring and characterization

Radiation hardenedSecuritySerial ATA (SATA) controllersStandard cell librariesUSB controllersVideo processors and computer graphicsVideo DecoderWi-Fi interface controllersExternal links

Page 80: Multiprocessor System-on-chip

[email protected]

Proveidors d'IP-cores• Altera

– Altera organitza tot el seu ecosistema d'IP-cores a travès del programa de partners, descrit en la seva pàgina web, de caracter comercial de preferència.

– http://www.altera.com/products/ip/design/ipm-design.html – Designing With Altera Intellectual Property

• Altera and its third-party intellectual property (IP) partners offer a large selection of off-the-shelf IP cores optimized for Altera® devices. All Altera IP cores are rigorously tested and optimized for the highest performance and lowest cost in Altera's programmable logic devices (PLDs). You can implement these parameterized blocks of IP easily, reducing design and test time.

Page 81: Multiprocessor System-on-chip

[email protected]

Proveidors d'IP-cores• Aeroflex Gaysler GRLIB IP Library

– http://www.gaisler.com/cms/index.php?option=com_content&task=section&id=13&Itemid=125

• The GRLIB IP Library is an integrated set of reusable IP cores, designed for system-on-chip (SOC) development. The IP cores are centered around the common on-chip bus, and use a coherent method for simulation and synthesis. The library is vendor independent, with support for different CAD tools and target technologies. A unique plug&play method is used to configure and connect the IP cores without the need to modify any global resources.

• The library includes cores for AMBA AHB/APB control, the LEON3 SPARC processor, 32-bit PC133 SDRAM controller, 32-bit PCI bridge with DMA, 10/100/1000 Mbit Ethernet MAC, 8/16/32-bit PROM and SRAM controller, 16/32/64-bit DDR/DDR2 controllers, USB-2.0 host and device controllers, CAN controller, TAP controller, SPI, I2C, ATA, UART with FIFO, modular timer unit, interrupt controller, and a 32-bit GPIO port. Memory and pad generators are available for Virage, Xilinx, UMC, Atmel, Altera, Actel and Lattice.

Page 82: Multiprocessor System-on-chip

[email protected]

Proveidors d'IP-cores• OpenCores.org

– http://opencores.org/ • Finalment, l'alternativa open-source, el SourceForge d'aquest

món. • Amb tots els aspectes bons i millorables d'aquestes iniciatives

que mereixen tota mena d'elogis. • Més que una descripció estructurada i corporativa es

recomana entrar, cercar, i disfrutar :-)• Actulment el projecte destacat d'OpenCores és la plataforma

OpenRISC 1200, al voltant d'un processador soft-core propi OpenRISC 1000 que permet desenvolupaments de SoC i de MPSoC

Page 83: Multiprocessor System-on-chip

[email protected]

Proveidors d'IP-coresOpenRISC1200 platform

– http://orsoc.se/openrisc1200-platform-2/ • The OpenRISC platform is a open-source processor platform

that provides many important advantages compared to other commercial solutions.

• The platform is built around the worlds only LGPL-licensed processor, the OpenRISC 32-bit processor developed at OpenCores.org

Page 84: Multiprocessor System-on-chip

[email protected]

Proveidors d'IP-cores• OpenRISC SoC FPGA development board

– http://opencores.org/or1k/Ordb2a-ep4ce22 • This Altera FPGA board has been designed to fit OpenRISC

processor SoC designs perfectly, meaning that we have focused on making sure that it supports the most common/wanted interfaces, and that it's still expandable through two GPIO connectors located on the bottom side.

• Another focus has been to make this board a low-cost product, since the goal with this board is to spread the OpenRISC processor platform and to enable more hardware and software engineers to easily get started using the OpenRISC processor.

Page 85: Multiprocessor System-on-chip

[email protected]

Acceleració hardware• Una última eina que val la pena comentar és

l'acceleració hardware d'algorismes desenvolupats en llenguatges tradicionals de programació seqüencial, no pas en els llenguatges de descripció de hardware.

• A grans trets, es pren un algorisme en C/C++ o un subconjunt d'aquest llenguatge i es transforma en codi VHDL automàgicament. De nou, hi ha alternatives Open-source i comercials.

• Els motius per usar aquesta aproximació poden variar des de l'estalvi d'esforç de disseny fins a la necessitat peremptòria d'assolir velocitats de procés inabastables en processadors seqüencials genèrics.

Page 86: Multiprocessor System-on-chip

[email protected]

Acceleració hardware• Nios II C-to-Hardware Acceleration Compiler

– http://www.altera.com/devices/processor/nios2/tools/c2h/ni2-c2h.html

– The award winning Nios® II embedded processor C-to-Hardware (C2H) acceleration compiler is a tool that boosts the performance of your time-critical ANSI C functions by converting them into hardware accelerators in the FPGA.

– Features• Push-button acceleration of ANSI/ISO C code• GHz performance with mW power consumption• Tight integration with software design flow• Direct connection of hardware accelerators to CPU's memory map• Seamless support for pointers and arrays• Efficient latency-aware scheduling and pipelining of memory

transactions

Page 87: Multiprocessor System-on-chip

[email protected]

Acceleració hardware

• SystemC– http://www.systemc.org/home/ – Welcome to Accellera Systems Initiative– Formed by the merger of industry standards bodies

Accellera and Open SystemC Initiative (OSCI), our technical committees work diligently to develop standards that address the real needs of system and semiconductor designers who must find new and smarter ways develop increasingly complex chips for today’s products.

Page 88: Multiprocessor System-on-chip

[email protected]

Acceleració hardware

• Open source, and free as in free beer:• Jacquard Computing ROCCC 2.0

– http://www.jacquardcomputing.com/roccc/ – ROCCC 2.0 (Riverside Optimizing Compiler for Configurable Computing) is

a C to HDL compilation framework specifically focused on FPGA-based code acceleration from a subset of the C language.

– Unlike similar tools designed for high-level synthesis, ROCCC 2.0 does not focus on the generation of arbitrary hardware circuits. Rather, its focus is on compile time transformations and optimizations aimed at providing an application substantial speedup by replacing regions in software with a dedicated hardware component.

• FPGAC – http://fpgac.sourceforge.net/– Molt més modest en organització, però actiu.

Page 89: Multiprocessor System-on-chip

[email protected]

NIOS IIIntroducció ràpida.

Page 90: Multiprocessor System-on-chip

[email protected]

Nios II quickie

Page 91: Multiprocessor System-on-chip

[email protected]

Nios II quickie

Page 92: Multiprocessor System-on-chip

[email protected]

Nios II quickie

Page 93: Multiprocessor System-on-chip

[email protected]

Nios II quickie

Page 94: Multiprocessor System-on-chip

[email protected]

Nios II quickie

Page 95: Multiprocessor System-on-chip

[email protected]

Nios II quickie

Page 96: Multiprocessor System-on-chip

[email protected]

Nios II quickie

Page 97: Multiprocessor System-on-chip

[email protected]

Nios II quickie

Page 98: Multiprocessor System-on-chip

[email protected]

Curiositats

Page 99: Multiprocessor System-on-chip

[email protected]

Arduino en FPGA• http://gadgetforge.gadgetfactory.net/gf/project/wiringide/

– The Butterfly Wiring-Arduino IDE is a specially modified version of the Arduino IDE that supports the AVR8 Soft Processor and the Butterfly Platform FPGA development boards. Many Arduino sketches can run with no modification.

• Why?

– Why would you want to run the Arduino IDE on an FPGA? The answer is rapid prototyping without limits. An FPGA is like a clean slate just waiting to become anything you want.

• Features

– Works with existing Arduino sketches, anything that doesn't use analog should compile.

– Familiar Arduino user interface.

– No special FPGA knowledge required, no HDL or synthesis tools to learn.

– Uses the AVR8 Soft Processor which is an Open Source RISC processor that implements all the registers and instructions of an ATmega103 processor.

– AVR8 supports UART, timers, PWM, and interrupts.

– Everything from the processor to the IDE is Open Source and customizable. If you need more digital I/O or more PWM's then you can just modify the source.

Page 100: Multiprocessor System-on-chip

[email protected]

(c) 1982 Sinclair Research Ltd• http://zxgate.sourceforge.net/

• ZXGATE - Old Computers in new FPGAs

• This projects original intention was to make an updated version of Bodo Wenzels ZX97 ZX81 clone. All FPGA implementations have been done in VHDL and the source code can be downloaded from this projects CVS repository.

• Available systems:– ZX81– ZX Spectrum– Jupiter ACE– TRS80

• http://mikestirling.co.uk/2010/11/zx-spectrum-on-altera-de1-source-code/– Mike Stirling ha implementar un Sinclair ZX Spectrum en una

Altera DE1 que implementa un soft-core T80 en el lloc del Z80 físic.

Page 101: Multiprocessor System-on-chip

[email protected]

FPGA Arcade• http://www.fpgaarcade.com/

• Programmable Gaming Hardware

• This site is about recreating gaming hardware from the past in modern programmable devices, known as FPGAs. Please see the FAQ page for a more detailed discussion and commonly asked questions.

• The latest varients of the Opencores T65 and T80 cpu cores can be found on the Library page

Page 102: Multiprocessor System-on-chip

[email protected]

Bibliografia

Page 103: Multiprocessor System-on-chip

[email protected]

Bibliografia• Katalin Popovici, Frédéric Rousseau, Ahmed A. Jerraya i Marilyn Wolf Embedded Software Design and Programming of Multiprocessor

System-on-Chip New York: Springer Science+Business Media, LLC 2010.

• Katalin Popovici i Ahmed Jerraya "Hardware Abstraction Layer, Introduction and Overview" Hardware-dependent software, principles and practice. Springer Science + Business Media B.V. 2009

• Rainer Leupers, Olivier Temam Processor and System-on-Chip Simulation New York: Springer Science+Business Media, LLC 2010.

• Heikki Kariniemi On-line reconfigurable extended generalized fat tree Network-on-Chip for MPSoC Tampere university of technology. Publication 614

• Davide Bertozzi and Luca Benini Xpipes: A Network-on-Chip Architecture for Gigascale Systems-on-Chip IEEE Circuits and Systems Magazine 2004

• Harel Friedman, Ran Ginosar Advanced topics for NoC Seminar in VLSI architectures (048879), EE Department Technion, Haifa, Israel.

• Martin, G. Tensilica, Inc., Santa Clara, CA "Overview of the MPSoC design challenge" Design Automation Conference, 2006 43rd ACM/IEEE 2006 pàg 274 – 279.

• Hannu Penttinen, Tapio Koskinen Altera Innovate Nordic 2007: Leon3 MP on Altera FPGA, Final Report Tampere University of Technology 2007

• Olli Lehtoranta et al. "A parallel MPEG-4 encoder for FPGA based multiprocessor SoC" International Conference on Field Programmable Logic and Applications, 2005. 24-26 agost 2005, pàg 380 – 385.

• Erno Salminen et al. Hämäläinen HIBI-based Multiprocessor SoC on FPGA Institute of Digital and Computer Systems, Tampere University of Technology

• Pong P. Chu Embedded SoPC System with Altera NiosII Processor and VHDL Examples Wiley 2011

• Syed Zahid Ahmed, Gilles Sassatelli, Lionel Torres, Laurent Rougé Survey of new trends in Industry for Programmable hardware: FPGAs, MPPAs, MPSoCs, Structured ASICs, eFPGAs and new wave of innovation in FPGAs 20th International Conference on Field Programmable Logic and Applications Milano, ITALY, Aug. 31st - Sep. 2Nd, 2010

• Tsugio Makimoto The Hot Decade of Field Programmable Technologies Sony Corporation

• Frédéric Rousseau, Frédéric Pétrot MPSoC From System Specification to Hardware/Software Implementation TIMA Grenoble

• Steve Furber ARM system-on-chip architecture (2nd

Edition) Addison Wesley 2000

• Anthony J. Massa Embedded Software development with eCos Prentice Hall, NJ 2002

Page 104: Multiprocessor System-on-chip

[email protected]

Ssssshhhht...TAAA-DAAA!!!

Page 105: Multiprocessor System-on-chip

[email protected]

Gràcies...• per assistir.• per escoltar.• per entendre.• i per plantejar-vos reptes.