SlideShare una empresa de Scribd logo
1 de 105
Electrònica integrada
Multiprocessor
system-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 l'art.               –   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
          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!




                                                                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
PART1
ENTENENT MP-SoC

                  domenec.sos.valles@gmail.com
Introducció als MP-SoC
Definicions.

                    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-SoC
Estat de l'art.

                    domenec.sos.valles@gmail.com
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.




                                                              domenec.sos.valles@gmail.com
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.




                                                                     domenec.sos.valles@gmail.com
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


                                                               domenec.sos.valles@gmail.com
Tendències del mercat
• Onades tecnològiques
  – D'on 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 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.




                                                      domenec.sos.valles@gmail.com
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ó




                                              domenec.sos.valles@gmail.com
I els estudiants?
•   Com a futurs professionals, molts reptes, moltes opcions.




                                                                domenec.sos.valles@gmail.com
Introducció als MP-SoC
Arquitectura hardware.

                    domenec.sos.valles@gmail.com
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.




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



                                                                                                     domenec.sos.valles@gmail.com
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.



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




                                                              domenec.sos.valles@gmail.com
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.




                                                                   domenec.sos.valles@gmail.com
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.




                                                                domenec.sos.valles@gmail.com
Introducció als MP-SoC
Arquitectura software.

                    domenec.sos.valles@gmail.com
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.




                                                       domenec.sos.valles@gmail.com
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




                                                          domenec.sos.valles@gmail.com
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).




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




                                                     domenec.sos.valles@gmail.com
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.




                                                                    domenec.sos.valles@gmail.com
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.




                                                                      domenec.sos.valles@gmail.com
Introducció als MP-SoC
Procè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 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.




                                                            domenec.sos.valles@gmail.com
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ó.




                                           domenec.sos.valles@gmail.com
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.




                                                              domenec.sos.valles@gmail.com
Introducció als MP-SoC
Reptes.

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




                                                        domenec.sos.valles@gmail.com
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.




                                                                domenec.sos.valles@gmail.com
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)
   –   ...

                                                  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 d'energia 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 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.




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




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



                                                               domenec.sos.valles@gmail.com
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.




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




                                               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 l'exemple l'enrutament 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ó creuada
L'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.



                                                         domenec.sos.valles@gmail.com
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.



                                                      domenec.sos.valles@gmail.com
PART2
FENT MP-SoC

              domenec.sos.valles@gmail.com
Eines
Processadors 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 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




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




                                        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
Eines
Sistemes operatius.

                      domenec.sos.valles@gmail.com
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.




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



                                                    domenec.sos.valles@gmail.com
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/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
Eines
Busos 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
Eines
IP 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 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.


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



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




                                                 domenec.sos.valles@gmail.com
Soft-cores

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

Analog-to-Digital Converters        I/O pad libraries               Radiation hardened
Broadband modem and error           MIPI                            Security
correction                          Mobile Storage                  Serial ATA (SATA) controllers
Chip interconnection integrity      NAND Flash memory controllers   Standard cell libraries
Decimal Floating Point Arithmetic   NAND Flash memory PHYs          USB controllers
Digital Audio                       On-chip SRAMs                   Video processors and computer
Digital to Analog Converters        On-chip non-volatile memory     graphics
DRAM controllers i DRAM PHYs        On-chip Bus                     Video Decoder
Ethernet interface controllers      Phase Locked Loops (PLLs)       Wi-Fi interface controllers
Ethernet PHYs                       Power Management                External links
General purpose microprocessors     Process monitoring and
HDMI                                characterization
ISP




                                                                               domenec.sos.valles@gmail.com
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.




                                                         domenec.sos.valles@gmail.com
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.



                                                               domenec.sos.valles@gmail.com
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




                                                      domenec.sos.valles@gmail.com
Proveidors d'IP-cores
OpenRISC1200 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 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.




                                                   domenec.sos.valles@gmail.com
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.

                                          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 CPU's 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 II
Introducció 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 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.



                                                                   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

Más contenido relacionado

Similar a Multiprocessor System-on-chip

La informàtica
La informàticaLa informàtica
La informàticafrllamas
 
Informàtica projecte
Informàtica projecteInformàtica projecte
Informàtica projectecgclaudia12
 
PARTS CPU
PARTS CPUPARTS CPU
PARTS CPUticitec
 
Maquinari pc fi
Maquinari pc fiMaquinari pc fi
Maquinari pc fijlloretp
 
Informaticapowerpoint2
Informaticapowerpoint2Informaticapowerpoint2
Informaticapowerpoint2Soraya Delfa
 
Components de l'ordinador
Components de l'ordinadorComponents de l'ordinador
Components de l'ordinadormireiiaa96
 
Supercomputador Nec SX9
Supercomputador Nec SX9Supercomputador Nec SX9
Supercomputador Nec SX9Andreu Bassols
 
Tecno informatica eric
Tecno informatica ericTecno informatica eric
Tecno informatica ericeric vila
 
Tecno informatica eric
Tecno informatica ericTecno informatica eric
Tecno informatica ericeric vila
 
Informàtica
InformàticaInformàtica
Informàticaainaperez
 
Jornada TIC 23_02_12
Jornada TIC 23_02_12Jornada TIC 23_02_12
Jornada TIC 23_02_12crpvoll
 
Manteniment bàsic d'equips, aplicacions i xarxes
Manteniment bàsic d'equips, aplicacions i xarxesManteniment bàsic d'equips, aplicacions i xarxes
Manteniment bàsic d'equips, aplicacions i xarxesChusPrieto
 
L’Arquitectura De L’Ordinador
L’Arquitectura De L’OrdinadorL’Arquitectura De L’Ordinador
L’Arquitectura De L’Ordinadorjribalt1
 
Nf1. manteniment bàsic d'equips, aplicacions i xarxa2007.1
Nf1. manteniment bàsic d'equips, aplicacions i xarxa2007.1Nf1. manteniment bàsic d'equips, aplicacions i xarxa2007.1
Nf1. manteniment bàsic d'equips, aplicacions i xarxa2007.1Chus Prieto
 
Informatica treball pdf
Informatica treball pdfInformatica treball pdf
Informatica treball pdfEnrikex Bellic
 

Similar a Multiprocessor System-on-chip (20)

Arquitecturapc01
Arquitecturapc01Arquitecturapc01
Arquitecturapc01
 
La informàtica
La informàticaLa informàtica
La informàtica
 
Informàtica projecte
Informàtica projecteInformàtica projecte
Informàtica projecte
 
Informàtica projecte
Informàtica projecteInformàtica projecte
Informàtica projecte
 
Sei tema2 2 11.11
Sei tema2 2 11.11Sei tema2 2 11.11
Sei tema2 2 11.11
 
PARTS CPU
PARTS CPUPARTS CPU
PARTS CPU
 
Maquinari pc fi
Maquinari pc fiMaquinari pc fi
Maquinari pc fi
 
Informaticapowerpoint2
Informaticapowerpoint2Informaticapowerpoint2
Informaticapowerpoint2
 
Components de l'ordinador
Components de l'ordinadorComponents de l'ordinador
Components de l'ordinador
 
Supercomputador Nec SX9
Supercomputador Nec SX9Supercomputador Nec SX9
Supercomputador Nec SX9
 
Projecte Informàtica
Projecte InformàticaProjecte Informàtica
Projecte Informàtica
 
Tecno informatica eric
Tecno informatica ericTecno informatica eric
Tecno informatica eric
 
Tecno informatica eric
Tecno informatica ericTecno informatica eric
Tecno informatica eric
 
Informàtica
InformàticaInformàtica
Informàtica
 
Jornada TIC 23_02_12
Jornada TIC 23_02_12Jornada TIC 23_02_12
Jornada TIC 23_02_12
 
Manteniment bàsic d'equips, aplicacions i xarxes
Manteniment bàsic d'equips, aplicacions i xarxesManteniment bàsic d'equips, aplicacions i xarxes
Manteniment bàsic d'equips, aplicacions i xarxes
 
L’Arquitectura De L’Ordinador
L’Arquitectura De L’OrdinadorL’Arquitectura De L’Ordinador
L’Arquitectura De L’Ordinador
 
Nf1. manteniment bàsic d'equips, aplicacions i xarxa2007.1
Nf1. manteniment bàsic d'equips, aplicacions i xarxa2007.1Nf1. manteniment bàsic d'equips, aplicacions i xarxa2007.1
Nf1. manteniment bàsic d'equips, aplicacions i xarxa2007.1
 
Informatica treball pdf
Informatica treball pdfInformatica treball pdf
Informatica treball pdf
 
Treballl infor
Treballl inforTreballl infor
Treballl infor
 

Último

Programa Dansa Ara Garraf Les Roquetes Sa
Programa Dansa Ara Garraf Les Roquetes SaPrograma Dansa Ara Garraf Les Roquetes Sa
Programa Dansa Ara Garraf Les Roquetes SaISMAELALVAREZCABRERA
 
feedback.pdf55555555555555555555555555555
feedback.pdf55555555555555555555555555555feedback.pdf55555555555555555555555555555
feedback.pdf55555555555555555555555555555twunt
 
LES CONJUNCIONS EN CATALÀ: GRAMÀTICA CATALANA
LES CONJUNCIONS EN CATALÀ: GRAMÀTICA CATALANALES CONJUNCIONS EN CATALÀ: GRAMÀTICA CATALANA
LES CONJUNCIONS EN CATALÀ: GRAMÀTICA CATALANAAnaBallesteros29
 
TIPUS DE POSICIONS D'UNA RECTA. VERITABLE MAGNITUD.
TIPUS DE POSICIONS D'UNA RECTA. VERITABLE MAGNITUD.TIPUS DE POSICIONS D'UNA RECTA. VERITABLE MAGNITUD.
TIPUS DE POSICIONS D'UNA RECTA. VERITABLE MAGNITUD.Lasilviatecno
 
II BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓ
II BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓII BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓ
II BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓLasilviatecno
 
4 RATLLES - MAIG 2024 - ESCOLA AMETLLERS
4 RATLLES - MAIG 2024 - ESCOLA AMETLLERS4 RATLLES - MAIG 2024 - ESCOLA AMETLLERS
4 RATLLES - MAIG 2024 - ESCOLA AMETLLERSSuperAdmin9
 
Presentació bloc 3 Perspectiva gènere.pptx
Presentació bloc 3 Perspectiva gènere.pptxPresentació bloc 3 Perspectiva gènere.pptx
Presentació bloc 3 Perspectiva gènere.pptxRosabel UA
 
INFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdf
INFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdfINFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdf
INFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdfErnest Lluch
 

Último (8)

Programa Dansa Ara Garraf Les Roquetes Sa
Programa Dansa Ara Garraf Les Roquetes SaPrograma Dansa Ara Garraf Les Roquetes Sa
Programa Dansa Ara Garraf Les Roquetes Sa
 
feedback.pdf55555555555555555555555555555
feedback.pdf55555555555555555555555555555feedback.pdf55555555555555555555555555555
feedback.pdf55555555555555555555555555555
 
LES CONJUNCIONS EN CATALÀ: GRAMÀTICA CATALANA
LES CONJUNCIONS EN CATALÀ: GRAMÀTICA CATALANALES CONJUNCIONS EN CATALÀ: GRAMÀTICA CATALANA
LES CONJUNCIONS EN CATALÀ: GRAMÀTICA CATALANA
 
TIPUS DE POSICIONS D'UNA RECTA. VERITABLE MAGNITUD.
TIPUS DE POSICIONS D'UNA RECTA. VERITABLE MAGNITUD.TIPUS DE POSICIONS D'UNA RECTA. VERITABLE MAGNITUD.
TIPUS DE POSICIONS D'UNA RECTA. VERITABLE MAGNITUD.
 
II BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓ
II BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓII BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓ
II BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓ
 
4 RATLLES - MAIG 2024 - ESCOLA AMETLLERS
4 RATLLES - MAIG 2024 - ESCOLA AMETLLERS4 RATLLES - MAIG 2024 - ESCOLA AMETLLERS
4 RATLLES - MAIG 2024 - ESCOLA AMETLLERS
 
Presentació bloc 3 Perspectiva gènere.pptx
Presentació bloc 3 Perspectiva gènere.pptxPresentació bloc 3 Perspectiva gènere.pptx
Presentació bloc 3 Perspectiva gènere.pptx
 
INFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdf
INFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdfINFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdf
INFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdf
 

Multiprocessor System-on-chip

  • 2. 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
  • 3. “Coming soon to a screen near you” ENTENENT FENT • Introducció als MP-SoC • Eines – Definicions. – Processadors soft-core. – Estat de l'art. – 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
  • 4. Presentacions Please 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! domenec.sos.valles@gmail.com
  • 5. La Salle, circa 1989... domenec.sos.valles@gmail.com
  • 6. MP-SoC, ok, però... per què? domenec.sos.valles@gmail.com
  • 7. #chucknorrisfacts • Chuck Norris escriu codi VHDL que compila, simula i funciona en la DE2 sempre a la primera. domenec.sos.valles@gmail.com
  • 8. #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
  • 9. PART1 ENTENENT MP-SoC domenec.sos.valles@gmail.com
  • 10. Introducció als MP-SoC Definicions. domenec.sos.valles@gmail.com
  • 11. 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
  • 12. Introducció als MP-SoC Estat de l'art. domenec.sos.valles@gmail.com
  • 13. 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. domenec.sos.valles@gmail.com
  • 14. 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. domenec.sos.valles@gmail.com
  • 15. 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 domenec.sos.valles@gmail.com
  • 16. Tendències del mercat • Onades tecnològiques – D'on venim i on anem. domenec.sos.valles@gmail.com
  • 17. 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
  • 18. 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. domenec.sos.valles@gmail.com
  • 19. 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ó domenec.sos.valles@gmail.com
  • 20. I els estudiants? • Com a futurs professionals, molts reptes, moltes opcions. domenec.sos.valles@gmail.com
  • 21. Introducció als MP-SoC Arquitectura hardware. domenec.sos.valles@gmail.com
  • 22. 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. domenec.sos.valles@gmail.com
  • 23. 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 ... domenec.sos.valles@gmail.com
  • 24. 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. domenec.sos.valles@gmail.com
  • 25. Exemples de topologia • Shared bus • Pipeline • Crossbar switch domenec.sos.valles@gmail.com
  • 26. Exemples de topologia • Xarxa de commutació de paquets. • Spidergon (polígon aranya) domenec.sos.valles@gmail.com
  • 27. 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. domenec.sos.valles@gmail.com
  • 28. 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. domenec.sos.valles@gmail.com
  • 29. 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. domenec.sos.valles@gmail.com
  • 30. Introducció als MP-SoC Arquitectura software. domenec.sos.valles@gmail.com
  • 31. 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. domenec.sos.valles@gmail.com
  • 32. 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 domenec.sos.valles@gmail.com
  • 33. 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). domenec.sos.valles@gmail.com
  • 34. 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. domenec.sos.valles@gmail.com
  • 35. 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. domenec.sos.valles@gmail.com
  • 36. 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. domenec.sos.valles@gmail.com
  • 37. Introducció als MP-SoC Procès de disseny. domenec.sos.valles@gmail.com
  • 38. 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. domenec.sos.valles@gmail.com
  • 39. 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ó. domenec.sos.valles@gmail.com
  • 40. 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. domenec.sos.valles@gmail.com
  • 41. Introducció als MP-SoC Reptes. domenec.sos.valles@gmail.com
  • 42. 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
  • 43. 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. domenec.sos.valles@gmail.com
  • 44. 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. domenec.sos.valles@gmail.com
  • 45. 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) – ... domenec.sos.valles@gmail.com
  • 46. 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. domenec.sos.valles@gmail.com
  • 47. 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. domenec.sos.valles@gmail.com
  • 48. 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. domenec.sos.valles@gmail.com
  • 49. 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) domenec.sos.valles@gmail.com
  • 50. 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. domenec.sos.valles@gmail.com
  • 51. MP-SoC en Altera DE1 "Yes, you can" domenec.sos.valles@gmail.com
  • 52. 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. domenec.sos.valles@gmail.com
  • 53. 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. domenec.sos.valles@gmail.com
  • 54. 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
  • 55. Compilació creuada L'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. domenec.sos.valles@gmail.com
  • 56. 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. domenec.sos.valles@gmail.com
  • 57. PART2 FENT MP-SoC domenec.sos.valles@gmail.com
  • 58. Eines Processadors soft-core. domenec.sos.valles@gmail.com
  • 59. Processadors soft-core • Molts per triar i remenar! • Però amb restriccions de tipus diversos... domenec.sos.valles@gmail.com
  • 60. 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 domenec.sos.valles@gmail.com
  • 61. 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
  • 62. 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. domenec.sos.valles@gmail.com
  • 63. 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
  • 64. 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
  • 65. Eines Sistemes operatius. domenec.sos.valles@gmail.com
  • 66. 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. domenec.sos.valles@gmail.com
  • 67. 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. domenec.sos.valles@gmail.com
  • 68. 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/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
  • 69. Eines Busos i xarxes domenec.sos.valles@gmail.com
  • 70. 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
  • 71. 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
  • 72. 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
  • 73. 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
  • 74. Eines IP cores domenec.sos.valles@gmail.com
  • 75. 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. domenec.sos.valles@gmail.com
  • 76. 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
  • 77. 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. domenec.sos.valles@gmail.com
  • 78. 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. domenec.sos.valles@gmail.com
  • 79. Soft-cores • Tipus de soft-cores – http://en.wikipedia.org/wiki/List_of_semiconductor_IP_core_vendors Analog-to-Digital Converters I/O pad libraries Radiation hardened Broadband modem and error MIPI Security correction Mobile Storage Serial ATA (SATA) controllers Chip interconnection integrity NAND Flash memory controllers Standard cell libraries Decimal Floating Point Arithmetic NAND Flash memory PHYs USB controllers Digital Audio On-chip SRAMs Video processors and computer Digital to Analog Converters On-chip non-volatile memory graphics DRAM controllers i DRAM PHYs On-chip Bus Video Decoder Ethernet interface controllers Phase Locked Loops (PLLs) Wi-Fi interface controllers Ethernet PHYs Power Management External links General purpose microprocessors Process monitoring and HDMI characterization ISP domenec.sos.valles@gmail.com
  • 80. 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. domenec.sos.valles@gmail.com
  • 81. 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. domenec.sos.valles@gmail.com
  • 82. 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 domenec.sos.valles@gmail.com
  • 83. Proveidors d'IP-cores OpenRISC1200 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
  • 84. 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. domenec.sos.valles@gmail.com
  • 85. 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. domenec.sos.valles@gmail.com
  • 86. 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 domenec.sos.valles@gmail.com
  • 87. 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
  • 88. 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
  • 89. NIOS II Introducció ràpida. domenec.sos.valles@gmail.com
  • 90. Nios II quickie domenec.sos.valles@gmail.com
  • 91. Nios II quickie domenec.sos.valles@gmail.com
  • 92. Nios II quickie domenec.sos.valles@gmail.com
  • 93. Nios II quickie domenec.sos.valles@gmail.com
  • 94. Nios II quickie domenec.sos.valles@gmail.com
  • 95. Nios II quickie domenec.sos.valles@gmail.com
  • 96. Nios II quickie domenec.sos.valles@gmail.com
  • 97. Nios II quickie domenec.sos.valles@gmail.com
  • 98. Curiositats domenec.sos.valles@gmail.com
  • 99. 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. domenec.sos.valles@gmail.com
  • 100. (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
  • 101. 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
  • 102. Bibliografia domenec.sos.valles@gmail.com
  • 103. 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
  • 104. Ssssshhhht... TAAA-DAAA!!! domenec.sos.valles@gmail.com
  • 105. Gràcies... • per assistir. • per escoltar. • per entendre. • i per plantejar-vos reptes. domenec.sos.valles@gmail.com