• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Multiprocessor System-on-chip
 

Multiprocessor System-on-chip

on

  • 1,045 views

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

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

Statistics

Views

Total Views
1,045
Views on SlideShare
1,045
Embed Views
0

Actions

Likes
0
Downloads
27
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Multiprocessor System-on-chip Multiprocessor System-on-chip Presentation Transcript

    • Electrònica integradaMultiprocessorsystem-on-chip (MP-SoC) domenec.sos.valles@gmail.com
    • 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 domenec.sos.valles@gmail.com
    • “Coming soon to a screen near you”ENTENENT FENT• Introducció als MP-SoC • Eines – Definicions. – Processadors soft-core. – Estat de lart. – Sistemes operatius. – Arquitectura, HW i SW. – Busos i xarxes – Procès dedisseny. – IP cores – Reptes. • NIOS II• MP-SoC en Altera DE1 – Introducció ràpida. – “Yes, you can” • Curiositats domenec.sos.valles@gmail.com
    • Presentacions Please allow me to introduce myself Im a man of wealth and taste Ive been around for a long, long years (...) Pleased to meet you Hope you guess my name But whats puzzling you Is the nature of my game [Jagger, Richards et al. 1968]1, 2, 3, TFC, 4, PSS+5... MGTI 5... 5... ¡5! domenec.sos.valles@gmail.com
    • La Salle, circa 1989... domenec.sos.valles@gmail.com
    • MP-SoC, ok,però... per què? domenec.sos.valles@gmail.com
    • #chucknorrisfacts• Chuck Norris escriu codi VHDL que compila, simula i funciona en la DE2 sempre a la primera. domenec.sos.valles@gmail.com
    • #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”); } domenec.sos.valles@gmail.com
    • PART1ENTENENT MP-SoC domenec.sos.valles@gmail.com
    • Introducció als MP-SoCDefinicions. domenec.sos.valles@gmail.com
    • 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 domenec.sos.valles@gmail.com
    • Introducció als MP-SoCEstat de lart. domenec.sos.valles@gmail.com
    • CaracterístiquesEl fet que un MPSoC és un multiprocessador significa que:• El disseny de programari és una part inherent del disseny general del sistema. No senten el disseny dun 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 lhabitual programació paral·lela.• Prenent avantatge de la integració: ample de banda, latència, major accés a la memòria. domenec.sos.valles@gmail.com
    • CaracterístiquesEl fet dusar un multi-processador no només té implicacions de software, també en el hardware:• Sestableix una barrera de velocitat al voltant del 1GHZ. Més funcionalitat implicará més paral·lelisme.• Sobtenen beneficis en termes de consum energètic. Aquest és un aspecte clau en un dels àmbits daplicació 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. Sobté un 10% més de capacitat amb només un 25% del consum denergia. domenec.sos.valles@gmail.com
    • Aplicacions• Es poden trobar exemples daplicació 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 domenec.sos.valles@gmail.com
    • Tendències del mercat• Onades tecnològiques – Don venim i on anem. domenec.sos.valles@gmail.com
    • 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 domenec.sos.valles@gmail.com
    • Tendències del mercat• Les onades de Makimoto responen a un pèndol, com les marees responen a la lluna. – Quan shan assolit els màxims nivells de costumització, el pèndol es començarà a moure cap a lestandarització per les necessitats de rapidesa per arribar al mercat, deficiència de cost i dficiència operacional. – En sentit invers, pot ajudar a moure la necessitat de diferenciació, lafegiment 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. domenec.sos.valles@gmail.com
    • Tendències del mercat• El cicle destandarització 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 lespecialització.• Les quatre edats de les FPGA: – 1. 1984-1991 Invenció – 2. 1992-1999 Expansió – 3. 2000-2007 Acumulació – 4. 2008-2015 Especialització domenec.sos.valles@gmail.com
    • I els estudiants?• Com a futurs professionals, molts reptes, moltes opcions. domenec.sos.valles@gmail.com
    • Introducció als MP-SoCArquitectura hardware. domenec.sos.valles@gmail.com
    • Arquitectura• Per les característiques que shan donat, és evident que cal pensar tant en larquitectura 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 sestà executant en aquesta arquitectura • En paral·lel • Basant-se en el suport de maquinari per a la sincronització, comunicació, coherència...• Res que no shagi inventat. domenec.sos.valles@gmail.com
    • 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 dalta 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 dI/O (ports sèrie o paral·lel, USB...)• Xarxes de comunicació simple – Busos (AHB, STbus...)• Xarxa de comunicació dalt rendiment – NOC (Network on Chip) Una NoC interconnecta els processadors en el SoC• Interfície de xarxa – Component capaç de fer ladaptació 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 dinterrupcions, controlador de memòria, àrbitrador ... domenec.sos.valles@gmail.com
    • Xarxa dinterconnexió• 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 daltres processadors.• En una xarxa indirecta el processador sassocia a un switch que li dóna entrada a la xarxa, dins de la qual poden haver un o més switches denrutament no associats a cap processador.• Una xarxa híbrida té característiques barrejades de les anteriors. domenec.sos.valles@gmail.com
    • Exemples de topologia• Shared bus• Pipeline• Crossbar switch domenec.sos.valles@gmail.com
    • Exemples de topologia• Xarxa de commutació de paquets.• Spidergon (polígon aranya) domenec.sos.valles@gmail.com
    • Exemples darquitectura hardware• MPSoC acadèmic implementat sobre FPGA Stratix, on diversos processadors (homogenis) Nios dAltera es comuniquen usant un bus HIBI (hierarchical segmented bus).• La imatge correspon compresor MPEG-4. domenec.sos.valles@gmail.com
    • Exemples darquitectura hardware• Exemple heterogeni i comercial, a sota lSTi7200: Triple display, HDTV set-top box, dual decoder per H.264 i VC-1, amb 150 millions de transistors. domenec.sos.valles@gmail.com
    • Exemples darquitectura 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. domenec.sos.valles@gmail.com
    • Introducció als MP-SoCArquitectura software. domenec.sos.valles@gmail.com
    • Arquitectura SW: Capes• Aplicació – La capa daplicació pot ser una descripció multi-tasca o una funció de tasca única de laplicació específica que sexecuta en el processador de software del subsistema. – Una tasca o fil dexecució (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. domenec.sos.valles@gmail.com
    • Arquitectura SW: Capes• Sistema Operatiu (OS) – El sistema operatiu gestiona la distribució dels recursos de larquitectura. És responsable de la inicialització i la gestió de les tasques daplicació i la comunicació entre elles. – Ofereix serveis com ara la programació en el temps de tasques, canvi de context, sincronització i gestió dinterrupcions domenec.sos.valles@gmail.com
    • Arquitectura SW: Capes• Comunicació – Aquesta capa sencarrega de gestionar les operacions dentrada/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). domenec.sos.valles@gmail.com
    • Arquitectura SW: Capes• HAL (Hardware Abstraction Layer) – El HAL proporciona una interfície de programació única per manipular els dispositius de maquinari. Per única senté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 sexecutarà el programari, però també depèn dels recursos de maquinari que interactuen amb el processador. domenec.sos.valles@gmail.com
    • Necessitat duna API• Per estandaritzar accesos entre capes cal una convenció que defineixi quines són les operacions, les dades que prenen dentrada i sortida i lefecte esperat sobre el sistema. Això permet la portabilitat de tot allò desenvolupat sobre lAPI.• Una interfície de programació daplicacions (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 dobjectes i variables. – Una especificació dAPI pot prendre moltes formes, incloent un estàndard internacional com POSIX o documentació del proveïdor, com ara lAPI de Microsoft Windows, o les biblioteques dun llenguatge de programació, per exemple, lStandard 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 lIEEE. Existeix una implementació anomenada Cygwin pels SO Windows que permet executar software Unix en aquests SO. domenec.sos.valles@gmail.com
    • Necessitat dun toolchain• A diferència dels microprocessadors convencionals, que tenen un joc dinstruccions predefinit, quan es creen processadors a mida per un MPSoC és possible fer el mateix per al joc dinstruccions 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, DSPs...), 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 shan 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 dinstruccions, duna 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 duna plataforma des duna 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 duna 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 daquí es construeixen tots els binaris necessaris per Y. domenec.sos.valles@gmail.com
    • Introducció als MP-SoCProcès de disseny. domenec.sos.valles@gmail.com
    • 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 laplicació, 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 lusuari. – El disseny de HW queda centrat en la disposició dels blocs constructius disponibles en la tecnologia triada. domenec.sos.valles@gmail.com
    • Nivells dabstracció• Un nivell dabtracció és una forma damagar els detalls dimplementació duna 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 savanci en el disseny el nivell de detall saproparà al detall final.• Es distingeixen quatre nivells dabstracció. domenec.sos.valles@gmail.com
    • Nivells dabstracció• System architecture – El particionat i mapejat de laplicació cap a larquitectura de destinació – Lassignació de la comunicació entre els recursos de maquinari disponibles.• Virtual architecture – Tansformar les funcions de laplicació en tasques de codi C. – Lassignació de la comunicació als recursos de maquinari disponibles en larquitectura final.• Transaction-accurate architecture – Integrar el sistema operatiu i el component de comunicació amb el codi de les tasques de laplicació – Adaptar el programari a la sincronització del protocol de comunicacions.• Virtual prototype – La integració de lAPI de la HAL al programari – Lestabliment de lassignació de memòria final. domenec.sos.valles@gmail.com
    • Introducció als MP-SoCReptes. domenec.sos.valles@gmail.com
    • 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. domenec.sos.valles@gmail.com
    • Reptes estructurals• El número delements 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. domenec.sos.valles@gmail.com
    • Aspectes claus de larquitectura• El número i les configuracions de processadors requerits per a laplicació.• 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 dun model de programació.• Jerarquies de memòria, tipus, quantitat i mètodes daccés, junt a lestimació de la latència requerida.• Modes especials doperació 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 dintegració, quants processadors es faran servir, 10, 100, 1000? Cada quan shaurà de fer un redisseny major de larquitectura?• Particionat daplicacions, ús de les API i models de comunicació adequadts, i eines EDA, ESL i ESW adequades per a lexploració de lespai de disseny. domenec.sos.valles@gmail.com
    • Reptes de disseny• Els reptes a lhora 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) – ... domenec.sos.valles@gmail.com
    • 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 denergia dins del sistema. domenec.sos.valles@gmail.com
    • 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 dun MPSoC els diversos processadors es poden asimilar a "un ramat de nyús corrent a través de duna sabana de recursos de memòria, comunicacions i consum denergia" (D. Sos et al, 2012). – Els desenvolupadors de software acumulen 6 decades dexperiència definint els algorismes com una seqüència ordenada dinstruccions, però no han vist grups de més dun nyú daprop. domenec.sos.valles@gmail.com
    • 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ó saplica: • Lús dAPI com OpenMP o Message Passing Interface (MPI) • Models estandaritzats de threads com POSIX. • Buscar el mix adequat de tècniques. domenec.sos.valles@gmail.com
    • 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 lexecució de les tasques a un RTOS o es delega en un mecanisme dscheduling 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 leficiè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 dun processador segons se li requereixi (el que es coneix com Dynamic Voltage and Frequency Scaling, DVFS) domenec.sos.valles@gmail.com
    • Reptes de disseny• Depuració – No importa lús de les millors metodologies, el disseny final del software tard o dhora sha de probar, sigui ja en una implementació real del MPSoC o un model cycle-accurate. Es clau la disponibilitat deines que permetin debugar el codi que sexecuta. – 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 laplicació, comunicant per mètodes diversos, usant jocs dinstruccions tunejats, escrits en diversos llenguatges de programació... – Oferir una vista coherent del sistema per fer possible arribar a les causes dels problemes i treuren lentrellat no és una tasca trivial. – La depuració concurrent és una tasca formidable. domenec.sos.valles@gmail.com
    • MP-SoC en Altera DE1"Yes, you can" domenec.sos.valles@gmail.com
    • MP-SoC en Altera DE1• Treball de fi de carrera dun equip de dos estudiants finlandesos. – Tot en software open source. – Vida més enllà de Quartus. – Adaptat a les restriccions de lentorn. domenec.sos.valles@gmail.com
    • 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 lexemple lenrutament entre dos nodes és òbviament simple. domenec.sos.valles@gmail.com
    • 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. domenec.sos.valles@gmail.com
    • Compilació creuadaLarquitectura 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 helloPer a més abundància, el propi CygWin és una implementació POSIX compliant per tenir eines Unix sobre Windows. domenec.sos.valles@gmail.com
    • Sistema operatiu eCos• Lús dun sistema operatiu permet tot un seguit de serveis per al desenvolupador.• La tria ha estat per eCos ve imposada per lescasetat de memòria, en tant que sadapta 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. domenec.sos.valles@gmail.com
    • PART2FENT MP-SoC domenec.sos.valles@gmail.com
    • EinesProcessadors soft-core. domenec.sos.valles@gmail.com
    • Processadors soft-core• Molts per triar i remenar!• Però amb restriccions de tipus diversos... domenec.sos.valles@gmail.com
    • Soft-cores de 64 bits• S1 Core – http://www.srisc.com/?s1 – Implementació open-source de larquitectura SPARCv9 de 64 bits, cosa que la fa única entre la resta. Va ser cedida per Sun el 2006. Es una versió retallada de lUltraSparc T1, que amb prou feines cap en la majoria dFPGA, molt menys la versió original de 8 nuclis per a entorns crítics domenec.sos.valles@gmail.com
    • 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 domenec.sos.valles@gmail.com
    • 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 leconomia dels 8 bits.• Hi ha un DSPuva16 de la Universidad de Valladolid, però la pàgina del projecte fa temps que és morta. domenec.sos.valles@gmail.com
    • 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/referenced esigns/8bitmicrocontrollermico8.cfm domenec.sos.valles@gmail.com
    • 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ó. domenec.sos.valles@gmail.com
    • EinesSistemes operatius. domenec.sos.valles@gmail.com
    • Sistemes operatius en temps real• De sistemes operatius en temps real (Real Time Operating Systems, RTOS) nhi ha gran quantitat, òbviament no només per soft-cores sino per tota mena de processadors. domenec.sos.valles@gmail.com
    • 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 – Its not that Linux® isnt fast or efficient, but in some cases fast just isnt good enough. Whats 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. domenec.sos.valles@gmail.com
    • Linux en Altera• Per als Alteramaniàtics hi ha lopció dinstal·lar un Linux sobre Nios II. – http://www.altera.com/devices/processor/nios2/tools/em bed-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. domenec.sos.valles@gmail.com
    • EinesBusos i xarxes domenec.sos.valles@gmail.com
    • 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. domenec.sos.valles@gmail.com
    • 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. domenec.sos.valles@gmail.com
    • 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. domenec.sos.valles@gmail.com
    • 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. domenec.sos.valles@gmail.com
    • EinesIP cores domenec.sos.valles@gmail.com
    • 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 lescriptura duna 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. domenec.sos.valles@gmail.com
    • 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. domenec.sos.valles@gmail.com
    • Ip-cores, hard & soft. Core, not ware• Soft-core – Descripcions en un llenguatge dalt nivell de descripció de hardware (HDL) que els fa portables a tots els dispositius que suporten síntesi des daquests llenguatges. – També és possible que sentreguin com un netlist RTL, lexpressió en àlgebra booleana del procés. Amb aquestsa opció lIP-core és virtualment portable a cada tecnologia. – Sha fet lanalogia que el netlist equival al llenguatge ensamblador del software (discutible, els llenguatges dalt nivell són portables via compilador, lensamblador 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. domenec.sos.valles@gmail.com
    • 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 AC97 i USB. Aquests al seu temps poden requerir interfícies per rebre senyals analògiques, dalt 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ó daudio MP3, GPU 3D, decodificació digital de vídeo, i funcions DSP com FFT, DCT, o codificació Viterbi. domenec.sos.valles@gmail.com
    • Soft-cores • Tipus de soft-cores – http://en.wikipedia.org/wiki/List_of_semiconductor_IP_core_vendorsAnalog-to-Digital Converters I/O pad libraries Radiation hardenedBroadband modem and error MIPI Securitycorrection Mobile Storage Serial ATA (SATA) controllersChip interconnection integrity NAND Flash memory controllers Standard cell librariesDecimal Floating Point Arithmetic NAND Flash memory PHYs USB controllersDigital Audio On-chip SRAMs Video processors and computerDigital to Analog Converters On-chip non-volatile memory graphicsDRAM controllers i DRAM PHYs On-chip Bus Video DecoderEthernet interface controllers Phase Locked Loops (PLLs) Wi-Fi interface controllersEthernet PHYs Power Management External linksGeneral purpose microprocessors Process monitoring andHDMI characterizationISP domenec.sos.valles@gmail.com
    • Proveidors dIP-cores• Altera – Altera organitza tot el seu ecosistema dIP-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 Alteras programmable logic devices (PLDs). You can implement these parameterized blocks of IP easily, reducing design and test time. domenec.sos.valles@gmail.com
    • Proveidors dIP-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. domenec.sos.valles@gmail.com
    • Proveidors dIP-cores• OpenCores.org – http://opencores.org/ • Finalment, lalternativa open-source, el SourceForge daquest món. • Amb tots els aspectes bons i millorables daquestes iniciatives que mereixen tota mena delogis. • Més que una descripció estructurada i corporativa es recomana entrar, cercar, i disfrutar :-) • Actulment el projecte destacat dOpenCores és la plataforma OpenRISC 1200, al voltant dun processador soft-core propi OpenRISC 1000 que permet desenvolupaments de SoC i de MPSoC domenec.sos.valles@gmail.com
    • Proveidors dIP-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 domenec.sos.valles@gmail.com
    • Proveidors dIP-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 its 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. domenec.sos.valles@gmail.com
    • Acceleració hardware• Una última eina que val la pena comentar és lacceleració hardware dalgorismes 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 daquest 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 lestalvi desforç de disseny fins a la necessitat peremptòria dassolir velocitats de procés inabastables en processadors seqüencials genèrics. domenec.sos.valles@gmail.com
    • 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 CPUs memory map • Seamless support for pointers and arrays • Efficient latency-aware scheduling and pipelining of memory transactions domenec.sos.valles@gmail.com
    • 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. domenec.sos.valles@gmail.com
    • 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. domenec.sos.valles@gmail.com
    • NIOS IIIntroducció ràpida. domenec.sos.valles@gmail.com
    • Nios II quickie domenec.sos.valles@gmail.com
    • Nios II quickie domenec.sos.valles@gmail.com
    • Nios II quickie domenec.sos.valles@gmail.com
    • Nios II quickie domenec.sos.valles@gmail.com
    • Nios II quickie domenec.sos.valles@gmail.com
    • Nios II quickie domenec.sos.valles@gmail.com
    • Nios II quickie domenec.sos.valles@gmail.com
    • Nios II quickie domenec.sos.valles@gmail.com
    • Curiositats domenec.sos.valles@gmail.com
    • 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 doesnt 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 PWMs then you can just modify the source. domenec.sos.valles@gmail.com
    • (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. domenec.sos.valles@gmail.com
    • 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 domenec.sos.valles@gmail.com
    • Bibliografia domenec.sos.valles@gmail.com
    • 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 nd• Steve Furber ARM system-on-chip architecture (2 Edition) Addison Wesley 2000• Anthony J. Massa Embedded Software development with eCos Prentice Hall, NJ 2002 domenec.sos.valles@gmail.com
    • Ssssshhhht...TAAA-DAAA!!! domenec.sos.valles@gmail.com
    • Gràcies...• per assistir.• per escoltar.• per entendre.• i per plantejar-vos reptes. domenec.sos.valles@gmail.com