Ejemplo de diseño de multiprocesador Nios® II

Recomendado para:

  • Dispositivo: Cyclone® III

  • Quartus®: Desconocido

author-image

Por

El ejemplo de diseño de Nios II multiprocesadores demuestra el uso de varios procesadores de Nios II en un Intel® FPGA. Si bien este ejemplo está dirigido principalmente a demostrar un sistema de hardware auténtico y construido correctamente, también contiene el software para ejercer las capacidades de competencia entre procesadores del sistema.

En este ejemplo se implementa el problema clásico de sincronización de "restaurantes". Imagine cinco personas sentadas en una mesa redonda. Se coloca un solo ánstick entre cada una de las piezas. Cada 100 000 100 000 de 10 000 000 de 2010 intentaron primero tomar el "stick" a la izquierda y luego el "stick" a la derecha. Si se adquieren ambas estaciones de abate, la aleta puede comerse. Después de un pequeño retraso que representa el tiempo de consumo, cada una de ellas lanza ambas", las cuales las pone a disposición de sus vecinos. Después de otro pequeño retraso, que representa el tiempo de pensamiento, el ciclo se repite. A fin de evitar el interbloqueo, si cualquier resalte no puede tomar el resquete derecho inmediatamente después de tomar el resquete izquierdo, debe colocar el resquete izquierdo e intentarlo de nuevo más tarde.

Creado con Qsys, el diseño de hardware dedicado dedica cinco procesadores a implementar cada una de cinco funciones de restauración y cinco mutex de hardware para implementar cada una de cinco tarjetas de análisis. Un excelente procesador Nios II y una RAM dentro del chip residen en el nivel superior, junto con un UART de JTAG y un temporizador. Cada uno de los cinco subsistemas comparte la RAM de nivel superior en el chip y contiene un procesador Nios II, JTAG UART, temporizador y mutex, que es un periférico de hardware que proporciona a los procesadores una exclusiva y exclusiva opción. Los puentes de canalización Avalon® Memory-Mapped (Avalon-MM) permiten la comunicación entre los subsistemas y los componentes de nivel superior, y entre procesadores y mutexes ubicados en subsistemas lógicamente adyacentes conectados en un aro.

El software dining_philosophers.c se ejecuta en cada uno de cinco procesadores de subsistema, implementando los procesos de adquisición y liberación de los valores de pensamiento, de resición, de valores de resición y de valores de coma. El procesador de nivel superior se ejecuta philosophers_monitor.c,aceptando comandos numéricos para adquirir cualquier mutex. Esto impide que ambos procesadores "contante" adyacentes lógicos se descuarticen hasta que se libere el mutex".

Especificaciones de diseño de hardware

  • Asistencia para placas
    • Placa de desarrollo Cyclone® III 3C120 FPGA
  • núcleos de procesador Nios II/f, habilitados para depuración, con caché de instrucciones de 4 KB y caché de datos de 2 KB: 6
  • Temporizadores del sistema: 6
  • RAM en el chip: 64 KB
  • Periféricos JTAG UART: 6
  • Periféricos Mutex: 5
  • Periférico de identificación del sistema: 1

Este ejemplo de diseño se basa en el sistema construido en el tutorial Creación de sistemas de Nios II multiprocesadores (PDF). Para obtener información detallada sobre la implementación de Nios II sistemas de multiprocesadores, consulte el tutorial mencionado anteriormente.

Diagrama de bloques

Figura 1. Diagrama de bloques de sistema de Nios II para procesadores múltiples en lugares donde se puede ver

Descargue el archivo utilizado en este ejemplo:

El archivo .zip contiene todos los archivos de hardware y software necesarios para reproducir este ejemplo, así como un archivo readme.txt.

El uso de este diseño se rige por, y está sujeto a, los términos y condiciones del Contrato de licencia de ejemplode diseño de Intel .

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.