Upload
domenec-valles
View
1.108
Download
10
Tags:
Embed Size (px)
DESCRIPTION
Una introducció als sistemes en xip multiprocessadors, presentada com a treball de l'assignatura Electronica Integrada de 5e curs a Enginyeria La Salle, Barcelona.
Citation preview
Electrònica integradaMultiprocessorsystem-on-chip (MP-SoC)
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
“Coming soon to a screen near you”
ENTENENT
• Introducció als MP-SoC– Definicions.
– Estat de l'art.
– Arquitectura, HW i SW.
– Procès dedisseny.
– Reptes.
• MP-SoC en Altera DE1– “Yes, you can”
FENT
• Eines– Processadors soft-core.
– Sistemes operatius.
– Busos i xarxes
– IP cores
• NIOS II– Introducció ràpida.
• Curiositats
PresentacionsPlease allow me to introduce myself I'm a man of wealth and taste I've been around for a long, long years (...)Pleased to meet you Hope you guess my name But what's puzzling you Is the nature of my game
[Jagger, Richards et al. 1968]
1, 2, 3, TFC, 4, PSS+5... MGTI 5... 5... ¡5!
La Salle, circa 1989...
MP-SoC, ok, però... per què?
#chucknorrisfacts
• Chuck Norris escriu codi VHDL que compila, simula i funciona en la DE2 sempre a la primera.
#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”);
}
PART1ENTENENT MP-SoC
Introducció als MP-SoCDefinicions.
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
Introducció als MP-SoCEstat de l'art.
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.
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.
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
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
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.
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ó
I els estudiants?• Com a futurs professionals, molts reptes, moltes opcions.
Introducció als MP-SoCArquitectura hardware.
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.
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 ...
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.
Exemples de topologia
• Xarxa de commutació de paquets.• Spidergon (polígon aranya)
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.
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.
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.
Introducció als MP-SoCArquitectura software.
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.
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
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).
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.
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.
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.
Introducció als MP-SoCProcès de disseny.
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.
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ó.
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.
Introducció als MP-SoCReptes.
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.
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.
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.
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)– ...
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.
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.
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.
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)
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.
MP-SoC en Altera DE1"Yes, you can"
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.
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.
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.
Compilació creuadaL'arquitectura desplegada corre sobre un compilador Sparc estrany i usa
un sistema operatiu encara més exòtic. Les possibilitats de trobar a Google un link de download és escasa. Per això, tal i com es va descriure a la introducció, es crea una cadena de compilació creuada.
• Compilar de forma creuada el propi sistema operatiu eCos per a Leon3.
• Compilar les pròpies aplicacions en C per a la plataforma Leon3.
La compilació és una versió que executa en CygWin del compilador gcc que genera codi binari per a Leon 3. La seva línia de comandes és més que familiar, llevat del nom del binari gcc que indica per a quina plataforma genera el codi.
$ sparc-elf-gcc -g -Ixyz_install/include -Lxyz_install/lib -Ttarget.ld -nostdlib hello.c -o hello
Per a més abundància, el propi CygWin és una implementació POSIX compliant per tenir eines Unix sobre Windows.
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.
PART2FENT MP-SoC
EinesProcessadors soft-core.
Processadors soft-core• Molts per triar i remenar!• Però amb restriccions de tipus diversos...
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
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
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.
Soft-cores de 8 bits
• PicoBlaze i PacoBlaze– http://www.xilinx.com/products/ipcenter/picoblaze-S3-V2-Pro.htm– http://bleyer.org/pacoblaze/
• LatticeMico8– http://www.latticesemi.com/products/intellectualproperty/
referencedesigns/8bitmicrocontrollermico8.cfm
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ó.
EinesSistemes operatius.
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.
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.
Linux en Altera• Per als Alteramaniàtics hi ha l'opció d'instal·lar un
Linux sobre Nios II. – http://www.altera.com/devices/processor/nios2/tools/
embed-partners/ni2-linux-partners.html– With the introduction of a Memory Management Unit (MMU)
for the Nios® II processor, you have a wide range of Linux providers from which to choose. From commercial support from industry leaders to a free open-source distribution, Altera’s embedded Linux partners offer the right level of support for your Linux project.
EinesBusos i xarxes
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.
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.
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.
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.
EinesIP cores
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.
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.
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.
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.
Soft-cores
• Tipus de soft-cores– http://en.wikipedia.org/wiki/List_of_semiconductor_IP_core_vendors
Analog-to-Digital ConvertersBroadband modem and error correctionChip interconnection integrityDecimal Floating Point ArithmeticDigital AudioDigital to Analog ConvertersDRAM controllers i DRAM PHYsEthernet interface controllersEthernet PHYsGeneral purpose microprocessorsHDMIISP
I/O pad librariesMIPIMobile StorageNAND Flash memory controllersNAND Flash memory PHYsOn-chip SRAMsOn-chip non-volatile memoryOn-chip BusPhase Locked Loops (PLLs)Power ManagementProcess monitoring and characterization
Radiation hardenedSecuritySerial ATA (SATA) controllersStandard cell librariesUSB controllersVideo processors and computer graphicsVideo DecoderWi-Fi interface controllersExternal links
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.
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.
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
Proveidors d'IP-coresOpenRISC1200 platform
– http://orsoc.se/openrisc1200-platform-2/ • The OpenRISC platform is a open-source processor platform
that provides many important advantages compared to other commercial solutions.
• The platform is built around the worlds only LGPL-licensed processor, the OpenRISC 32-bit processor developed at OpenCores.org
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.
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.
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
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.
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.
NIOS IIIntroducció ràpida.
Nios II quickie
Nios II quickie
Nios II quickie
Nios II quickie
Nios II quickie
Nios II quickie
Nios II quickie
Nios II quickie
Curiositats
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.
(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.
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
Bibliografia
Bibliografia• Katalin Popovici, Frédéric Rousseau, Ahmed A. Jerraya i Marilyn Wolf Embedded Software Design and Programming of Multiprocessor
System-on-Chip New York: Springer Science+Business Media, LLC 2010.
• Katalin Popovici i Ahmed Jerraya "Hardware Abstraction Layer, Introduction and Overview" Hardware-dependent software, principles and practice. Springer Science + Business Media B.V. 2009
• Rainer Leupers, Olivier Temam Processor and System-on-Chip Simulation New York: Springer Science+Business Media, LLC 2010.
• Heikki Kariniemi On-line reconfigurable extended generalized fat tree Network-on-Chip for MPSoC Tampere university of technology. Publication 614
• Davide Bertozzi and Luca Benini Xpipes: A Network-on-Chip Architecture for Gigascale Systems-on-Chip IEEE Circuits and Systems Magazine 2004
• Harel Friedman, Ran Ginosar Advanced topics for NoC Seminar in VLSI architectures (048879), EE Department Technion, Haifa, Israel.
• Martin, G. Tensilica, Inc., Santa Clara, CA "Overview of the MPSoC design challenge" Design Automation Conference, 2006 43rd ACM/IEEE 2006 pàg 274 – 279.
• Hannu Penttinen, Tapio Koskinen Altera Innovate Nordic 2007: Leon3 MP on Altera FPGA, Final Report Tampere University of Technology 2007
• Olli Lehtoranta et al. "A parallel MPEG-4 encoder for FPGA based multiprocessor SoC" International Conference on Field Programmable Logic and Applications, 2005. 24-26 agost 2005, pàg 380 – 385.
• Erno Salminen et al. Hämäläinen HIBI-based Multiprocessor SoC on FPGA Institute of Digital and Computer Systems, Tampere University of Technology
• Pong P. Chu Embedded SoPC System with Altera NiosII Processor and VHDL Examples Wiley 2011
• Syed Zahid Ahmed, Gilles Sassatelli, Lionel Torres, Laurent Rougé Survey of new trends in Industry for Programmable hardware: FPGAs, MPPAs, MPSoCs, Structured ASICs, eFPGAs and new wave of innovation in FPGAs 20th International Conference on Field Programmable Logic and Applications Milano, ITALY, Aug. 31st - Sep. 2Nd, 2010
• Tsugio Makimoto The Hot Decade of Field Programmable Technologies Sony Corporation
• Frédéric Rousseau, Frédéric Pétrot MPSoC From System Specification to Hardware/Software Implementation TIMA Grenoble
• Steve Furber ARM system-on-chip architecture (2nd
Edition) Addison Wesley 2000
• Anthony J. Massa Embedded Software development with eCos Prentice Hall, NJ 2002
Ssssshhhht...TAAA-DAAA!!!
Gràcies...• per assistir.• per escoltar.• per entendre.• i per plantejar-vos reptes.