Nios® II de projeto multiprocessador

Recomendado para:

  • Dispositivo: Cyclone® III

  • Quartus®: desconhecido

author-image

Por

O Nios II de design multiprocessador demonstra o uso de vários processadores Nios II em um Intel® FPGA. Embora este exemplo tenha como objetivo principal demonstrar um sistema de hardware hierárquico construído corretamente, ele também contém o software para exercer as capacidades de coordenação entre processadores do sistema.

Este exemplo implementa o clássico problema de sincronização dos "filósofos de jantar". Imagine cinco filósofos sentados em uma mesa redonda. Um único pauzinho é posicionado entre cada filósofo. Cada filósofo tenta primeiro pegar o pauzinho à esquerda e depois o pauzinho para a direita. Se ambos os pauzinhos são adquiridos, o filósofo pode comer. Após um pequeno atraso que representa o tempo de comer, cada filósofo derruba os dois pauzinhos, tornando-os disponíveis para seus filósofos vizinhos. Após outro pequeno atraso, que representa o tempo de pensamento, o ciclo se repete. Para evitar o travamento, se algum filósofo não conseguir pegar o pauzinho direito imediatamente após agarrar o pauzinho esquerdo, ele deve soltar o pauzinho esquerdo e tentar novamente mais tarde.

Criado com a Qsys, o design de hardware hierárquico dedica cinco processadores para implementar cada um dos cinco filósofos de restaurantes e cinco mutexes de hardware para implementar cada um dos cinco pauzinhos. Um sexto Nios II e uma RAM on-chip residem no nível superior, juntamente com um JTAG UART e um temporizador. Cada um dos cinco subsistemas compartilha a RAM on-chip de alto nível e contém um processador Nios II, JTAG UART, timer e mutex, que é um periférico de hardware que fornece aos processadores uma coordenação mutuamente exclusiva. As pontes de pipeline Avalon® Memory-Mapped (Avalon-MM) permitem a comunicação entre os subsistemas e componentes de nível superior e entre processadores e mutexes localizados em subsistemas logicamente adjacentes conectados em um anel.

O software dining_philosophers.c é executado em cada um dos cinco processadores do subsistema, implementando os processos de aquisição e liberação de pensamentos, alimentação e palitos. O processador de alto nível executa philosophers_monitor.c,aceitando comandos numéricos para adquirir qualquer mutex. Isso impede que os processadores "filósofos" logicamente adjacentes comam até que o mutex "pauzinho" seja lançado.

Especificações de design de hardware

  • Suporte da placa
    • Cyclone® III 3C120 FPGA de desenvolvimento
  • Nios II/f de processadores, habilitados para depuração, com cache de instruções de 4 KB e cache de dados de 2 KB: 6
  • Temporizadores do sistema: 6
  • RAM on-chip: 64 KB
  • Periféricos JTAG UART: 6
  • Periféricos Mutex: 5
  • Periférico de ID do sistema: 1

Este exemplo de projeto é baseado no sistema construído no Tutorial de criação de sistemas Nios II multiprocessador (PDF). Para obter informações detalhadas sobre a implementação Nios II sistemas multiprocessadores, consulte o tutorial mencionado acima.

Diagrama de blocos

Figura 1. Diagrama Nios II do sistema multiprocessador hierárquico

Baixe o arquivo usado neste exemplo:

O arquivo .zip contém todos os arquivos de hardware e software necessários para reproduzir este exemplo, bem como um arquivo readme.txt.

O uso deste design é regido e sujeito aos termos e condições do Contrato de licença de exemplo de design Intel®.

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.