Resum Els dissenys multi-nucli s’estan convertint en la solució més popular a la majoria de les limitacions dels dissenys mono-nucli. Un disseny multi-nucli segueix el paradigma de disseny conegut com a Sistema dins del Xip (o SoC, de l’anglès System on-Chip), en el qual diversos nuclis s’integren en un mateix xip. Les prestacions d’un disseny SoC depenen en gran mesura de la infraestructura d’interconnexió que implemente: mentres que un SoC petit pot utilitzar una interconnexió de tipus bus, interconnexions més complexes seran necessàries conforme el nombre del disseny augmente. En aquest context, el paradigma de disseny conegut com a xarxa dins del xip (o NoC, de l’anglès Network on-Chip) sorgeix com una solució als desafiaments d’interconnexió presents en els nous dissenys de tipus SoC. En una NoC, les transaccions entre els nuclis s’encapsulen en paquets, els quals seran entregats al seu destinatari a través de la xarxa d'interconnexió. Aquest concepte està adoptat del camp de les xarxes d’interconnexió d’altes prestacions, i com a tal, pot heretar la majoria de les tècniques dissenyades per a un camp d’investigació tan madur com aquest. Però a pesar de les similituds existents, ambdós camps presenten diferents limitacions. Per exemple, el tamany dels buffers és un factor crític per al cost de dissenys NoC, mentre que és un factor molt menys relevant en el cost de les xarxes fora del xip. Per això, les tècniques dissenyades en el domini de les xarxes fora del xip no haurien de suposar-se directament disponibles en NoCs, més bé haurien de ser revisades i adaptades a les seues particularitats. Concretament, la reducció contínua de les escales d’integració de les noves tecnologies fa que els efectes físics afecten cada vegada més a les prestacions de una NoC. Atès que en la NoC està involucrada en tots els fluxos de comunicacions de qualsevol SoC, és necessari que totes les etapes del flux de disseny d’una NoC tinguen en compte les conseqüències, a nivell físic, de totes les decisions preses. No obstant això, per a un disseny concret, l’elevat número de possibles solucions basades en NoCs (tant d’arquitectures com de tecnologies) incrementa la complexitat d’analitzar l’espai de disseny i d’escollir la NoC òptima. La solució més comú a aquets problema pasa per la utilització d’eines d’alt nivell per a l’obtenció d’estimacions sobre les prestacions de cada possible solució NoC, que posteriorment seran utilitzades pel dissenyador per tal de garbellar l’espai de disseny en les primeres etapes del procés de disseny. Però hi ha una gran diferència entre les prestacions estimades per eines d’alt nivell i les prestacions reals obtingudes una vegada el sistema s’implementa. De fet, aquesta diferència augmenta segons la quantitat de llibreries disponibles per a cada nòdul tecnològic augmenta, generant un major nombre d’errors en el procés de disseny, la qual cosa es tradueix en un major cost de disseny. Per tal d’evitar aquests problemes, és necessari extraure les característiques físiques de les NoCs de les capes del nivell més baix del procés i anotar-les en les eines que operen en els nivells més alts, encontrant nous punts de compromís entre velocitat d’exploración de l’espai de disseny i la seua precisió. Les eines actuals per a l’exploració temprana de l’espai de disseny pateixen una pobre precisió, ja que és una pràctica habitual ignorar els efectes de la implementació física en aquestes. El principal desafiament és que en afegir les implicacions de la implementació física a l’espai de disseny, el tamany d’aquest és fins i tot major del que era al principi. Aquest treball es centra en el desenvolupament de les noves eines d’alt nivell de disseny, modelat i simulació de NoCs, amb l’objectiu de garbellar l’espai de disseny dels candidats menys atractius mitjanant simulacions d’alta precisió basades en l’anotació de les característiques físiques dels candidats. Com a resultat d’aquest treball, els dissenyadors NoCs seran capaços d’aprofitar un nou conjunt d’eines per a l’exploració de l’espai de disseny que redueixen el temps de desenvolupament i minimitzen els problemes de precisió mencionats anteriorment. En un primer pas, ens centrarem en el disseny i desenvolupament d’una plataforma experimental per tal d’analitzar arquitectures alternatives per al disseny de NoCs. Per això, aquest treball presenta els esforços realitzats en el desenvolupament de models abstractes dels blocs bàsics d’arquitectures NoC amb una funcionalitat i precisió similars a les dels models equivalents amb precisió de registre (o models RTL, de l’anglès Register Transfer Level). Com a resultat dels esforços mencionats, es van obtindre dramàtiques millores en els temps de simulació sobre models RTL funcionalment equivalents. Al mateix temps, tots els models desenvolupats permeten anotar alguns paràmetres claus del procés de síntesi física (com la freqüència d’operació o la latència dels enllaços), de forma que permeten evaluar qualsevol punt de l’espai de disseny de forma ràpida i precisa. En el segon pas, mitjanant l’ús de la plataforma de simulació desenvolupada en el primer pas, les capes superiors del procés de desenvolupament de una NoC foren augmentades amb la capacitat de considerar efectes físics derivats de la implementació de una NoC sobre les seues prestacions. Mitjanant aquesta metodologia, es revisaren arquitectures i tècniques de disseny adaptades del domini de les xarxes d’interconnexió fora del xip, seleccionant les més prometedores i, en alguns casos, explotant les característiques pròpies de les xarxes dins del xip per tal d’obtindre noves solucions. Aquest pas, preliminar al desenvolupament de l’eina per a la realització d’exploracions de l’espai de disseny (o eines DSE, de l’anglès Design Space Exploration), té com a objectiu depurar les tècniques per a l’abstracció dels efectes de la implementació física de les NoCs sobre les seues prestacions. Aquest pas es va dividir en dues etapes. D’una banda, partint d’un punt de vista purament teòric, es van analitzar les topologies més populars presents en la literatura. Posteriorment, la plataforma de simulació desenvolupada es va utilitzar per tal de demostrar i corregir les fallades de precisió anteriorment mencionades. Exemples concrets relacionats amb els problemes de precisió foren analitzats per a configuracions de NoCs relevants per a la indústria, utilitzant la metolodologia desenvolupada per a corregir-los. Per tal de demostrar el potencial de la nova plataforma per a la investigació de NoCs, l’anàlisi de topologies es va extendre a un variat nombre d’arquitectures, amb diferents tamanys, restriccions de mapatge, tecnologies en fins i tot patrons d’interacció entre hardware i software. Adicionalment, els problemes més comuns que es poden encontrar a l’hora d’analitzar el disseny físic de topologies, així com les tècniques per a corregir-los, foren analitzats en termes tant de prestacions com de cost d’implementació. D’altra banda, diverses de les topologies considerades durant la investigació sobre topologies per a NoCs requereixen l’ús d’un mecanisme de control de flux basat en canals virtuals per tal de poder rendir al seu màxim potencial. Aquesta popular tècnica de control de flux ha estat utilitzada en el domini de les xarxes d’interconnexió durant diversos anys per una gran varietat de raons, i per això, s’ha proposat en nombroses ocasions el seu ús en NoCs. L’arquitectura amb canals virtuals per NoCs més comú en la literatura és importada del domini de xarxes off-xip. Encara que és completament funcional en el context de les NoCs, aquesta arquitectura està dissenyada per a un entorn diferent, la qual cosa es tradueix en penalitzacions en termes de freqüència d’operació i àrea. Per aquest motiu, proposem i avaluem una implementació de canals virtuals adaptada a les característiques de les NoCs, i conseqüentment capa de millorar considerablement les prestacions, l’àrea i el consum de potència comparat amb la implementació comunament acceptada Finalment, ens centrem en el desenvolupament de la pròpia eina per a la realització de DSE. La nostra solució a aquest desafiament és doble. D’una banda, aprofitem les tècniques desenvolupades en els passos previs relatives a l’impacte de la implementació física sobre les prestacions de les NoCs per construir una eina CAD per al suport al disseny de sistemes basats en NoCs. D’altra banda, introdüim algunes tècniques per reduir el cost de desenvolupament de nous dissenys mitjanant l’acceleració de l’exploració i tècniques per a la correcció ràpida d’errors en el procés de disseny