Los diseños multi-núcleo se están convirtiendo en la solución más popular a la mayoría de las limitaciones de los diseños mono-núcleo. Un diseño multi-núcleo sigue el paradigma de diseño conocido como Sistema dentro del Chip (o SoC , del inglés System on-Chip), en el cuál varios núcleos se integran en un mismo chip. Las prestaciones de un diseño SoC dependen en gran medida de la infraestructura de interconexión que implemente: mientras que un SoC pequeño puede utilizar una interconexión de tipo bus, interconexiones más complejas serán necesarias conforme el número de núcleos del diseño aumente. En este contexto, el paradigma de diseño conocido como red dentro del chip (o NoC, del inglés Network on-Chip) surge como una solución a los desafíos de interconexión presentes en los nuevos diseños de tipo SoC. En una NoC, las transacciones entre núcleos se encapsulan en paquetes, lo cuales serán entregados a su destinatario a través de la red de interconexión. Este concepto está adoptado del campo de las redes de interconexión de altas prestaciones, y como tal, puede heredar la mayoría de las técnicas diseñadas para un campo de investigación tan maduro como este. Pero a pesar de las similitudes existentes, ambos campos presentan diferentes limitaciones. Por ejemplo, el tamaño de los buffers es un factor crítico para el coste de diseños NoC, mientras que es un factor mucho menos relevante en el coste de las redes fuera del chip. Por ello, las técnicas diseñadas en el dominio de las redes fuera del chip no deberían suponerse directamente disponibles en NoCs, sino que deberán ser revisadas y adaptadas a sus particularidades. En concreto, la reducción continua de las escalas de integración de las nuevas tecnologías hace que los efectos físicos afecten cada vez más a las prestaciones de una NoC. Dado que en la NoC está involucrada en todos los flujos de comunicaciones de cualquier SoC, es necesario que todas las etapas del flujo de diseño de una NoC tengan en cuenta de las consecuencias a nivel físico de todas las decisiones tomadas. Sin embargo, para un diseño concreto, el alto número de posibles soluciones basadas en NoCs (tanto a nivel de arquitecturas como a nivel de tecnologías) incrementa la complejidad de analizar el espacio de diseño y de elegir la NoC óptima. La solución más común a este problema pasa por la utilización de herramientas de alto nivel para la obtención de estimaciones sobre las prestaciones de cada posible solución NoC, que posteriormente serán utilizadas por el diseñador para cribar el espacio de diseño en las primeras etapas del proceso de diseño. Pero hay una gran diferencia entre las prestaciones estimadas por herramientas de alto nivel y las prestaciones reales obtenidas una vez el sistema se implementa. De hecho, esta diferencia aumenta conforme la cantidad de librerías disponibles para cada nodo tecnológico aumenta, generando un mayor número de errores en el proceso de diseño, lo que se traduce en un mayor coste de diseño. Para evitar estos problemas, es necesario extraer las características físicas de las NoCs de las capas de nivel más bajo del proceso de diseño y anotarlas en las herramientas que operan en los niveles más altos, encontrando nuevos puntos de compromiso entre velocidad de exploración del espacio de diseño y su precisión. Las herramientas actuales para la exploración temprana del espacio de diseño sufren de una pobre precisión, dado que es una práctica habitual el ignorar los efectos de la implementación física en ellas. El principal desafío es que al añadir las implicaciones de la implementación física al espacio de diseño, el tamaño de éste es incluso mayor de lo que era en un principio. Este trabajo se centra en el desarrollo de nuevas herramientas de alto nivel de diseño, modelado y simulación de NoCs, con el fin de cribar el espacio de diseño de los candidatos menos atractivos mediante simulaciones de alta precisión basadas en la anotación de las características físicas de los candidatos. Como resultado de este trabajo, los diseñadores de NoCs serán capaces de aprovechar un nuevo conjunto de herramientas para la exploración del espacio de diseño que reducen el tiempo de desarrollo y minimizan los problemas de precisión mencionados anteriormente. En un primer paso, nos centraremos en el diseño y desarrollo de una plataforma experimental para analizar arquitecturas alternativas para el diseño de NoCs. Por ello, este trabajo presenta los esfuerzos realizados en el desarrollo de modelos abstractos de los bloques básicos de arquitecturas NoC con una funcionalidad y precisión similares a las de modelos equivalentes con precisión a nivel de registro (o modelos RTL, del inglés Register Transfer Level). Como resultado de dichos esfuerzos, se obtuvieron dramáticas mejoras en los tiempos de simulación sobre modelos RTL funcionalmente equivalentes. Al mismo tiempo, todos los modelos desarrollados permiten anotar algunos parámetros claves del proceso de síntesis física (como la frecuencia de operación o la latencia de los enlaces), de forma que permiten evaluar cualquier punto del espacio de diseño de forma rápida y precisa. En el segundo paso, mediante el uso de la plataforma de simulación desarrollada en el primer paso, las capas superiores del proceso de desarrollo de una NoC fueron aumentadas con la capacidad de considerar efectos físicos derivados de la implementación de una NoC sobre sus prestaciones. Mediante esta metodología, se revisaron arquitecturas y técnicas de diseño adoptadas del dominio de las redes de interconexión fuera del chip, seleccionando las más prometedoras y, en algunos casos, explotando las características propias de las redes dentro de chip para obtener nuevas soluciones. Este paso, preliminar al desarrollo de la herramienta para la realización de exploraciones del espacio de diseño (o herramientas DSE, del inglés Design Space Exploration), tiene como objetivo depurar las técnicas para la abstracción de los efectos de la implementación física de las NoCs sobre sus prestaciones. Este paso se dividió en dos etapas. Por un lado, partiendo de un punto de vista puramente teórico, se analizaron las topologías más populares presentes en la literatura. Posteriormente, la plataforma de simulación desarrollada se utilizó para demostrar y corregir los fallos de precisión anteriormente mencionados. Ejemplo concretos relacionados con dichos problemas de precisión fueron analizados para configuraciones de NoCs relevantes para la industria, utilizando la metodología desarrollada para corregirlos. Para demostrar el potencial de la nueva plataforma para la investigación de NoCs, el análisis de topologías se extendió a un variado número de arquitecturas, con diferentes tamaños, restricciones de mapeado, tecnologías en incluso patrones de interacción entre hardware y software. Adicionalmente, los problemas más comunes que se pueden encontrar a la hora de analizar el diseño físico de topologías, así como las técnicas para corregirlos, fueron analizados en términos tanto de prestaciones como de coste de implementación. Por otra parte, varias de las topologías consideradas durante la investigación sobre topologías para NoCs requieren del uso de un mecanismo de control de flujo basado en canales virtuales para poder rendir a su máximo potencial. Esta popular técnica de control de flujo ha sido utilizada en el dominio de las redes de interconexión durante varios años por una gran variedad de razones, y por ello, se ha propuesto en numerosas ocasiones su uso en NoCs. La arquitectura con canales virtuales para NoCs más común en la literatura es importada del dominio de redes off-chip. Aunque es completamente funcional en el contexto de las NoCs, esta arquitectura está diseñada para un entorno diferente, lo que se traduce en penalizaciones en términos de frecuencia de operación y área. Por este motivo, proponemos y evaluamos una implementación de canales virtuales adaptada a las características de las NoCs, y consecuentemente capaz de mejorar considerablemente las prestaciones, el área y el consumo de potencia comparado con la implementación comúnmente aceptada. Finalmente, nos centramos en el desarrollo de la propia herramienta para la realización de DSE. Nuestra solución a este desafío es doble. Por un lado, aprovechamos las técnicas desarrolladas en los pasos previos relativas al impacto de la implementación física sobre las prestaciones de las NoCs para construir una herramienta CAD para el apoyo al diseño de sistemas basados en NoCs. Por otro lado, introducciones algunas técnicas para reducir el coste de desarrollo de nuevos diseños mediante la aceleración de la exploración y técnicas para la corrección rápida de errores en el proceso de diseño.