Quando ocorrem riscos estruturais em arquiteturas em pipeline?

8

Estou procurando alguns exemplos relativamente simples de quando ocorrem riscos estruturais em uma arquitetura de tubulação.

O único cenário em que consigo pensar é quando a memória precisa ser acessada durante diferentes estágios do pipeline (ou seja, o estágio inicial de busca de instruções e o estágio posterior de leitura / gravação de memória).

Penso que existem muitos outros riscos estruturais em arquiteturas mais complexas, como as superescalares. Classifica como um risco estrutural quando uma instrução é enviada para uma unidade de execução, mas está na fila porque a unidade está em uso?

Se isso é altamente específico da arquitetura, basta assumir o MIPS ou algo semelhante.

Matt
fonte

Respostas:

6

Em uma implementação escalar, pode existir um risco estrutural se o hardware de execução específico não for totalmente canalizado. Para algumas operações (por exemplo, multiplicação e, principalmente, divisão), o custo da implementação da tubulação completa pode não ser considerado útil para a frequência esperada da operação.

Em uma implementação superescalar, um risco estrutural pode existir porque nem toda unidade de execução pode executar todas as operações. Por exemplo, apoiar o início da execução de quatro operações de memória ou quatro multiplicações a cada ciclo seria relativamente caro quando limitado a um problema de quatro partes, uma vez que é provável que um tipo diferente de operação esteja disponível.

Os limites da porta de leitura e gravação de arquivos de registro também podem apresentar riscos estruturais. Embora seja possível fornecer portas de leitura e gravação suficientes para suportar o pior caso, os custos das portas de arquivo de registro para satisfazer o pior caso (mesmo com o benefício na complexidade do projeto de não ter que lidar especialmente com casos excepcionais) podem ser considerados não valiosos. os benefícios quando os casos ruins são suficientemente raros ou não críticos. Por exemplo, algumas implementações fora de ordem usam captura de operando (operandos de captura que se tornam disponíveis entre o momento em que a operação entra no planejador e o horário em que está programada para execução) e fornecem menos portas de leitura de registro do que o necessário para a operação de largura total (operandos disponíveis anteriormente são lidos quando a operação entra no planejador ou quando a operação está agendada para execução).

(Mesmo para uma implementação em ordem, o encaminhamento de resultados e o uso de operações com um único operando de origem de registro poderiam tornar o suporte a quatro portas de leitura de registro menos necessário.)

Da mesma forma, o sistema bancário é frequentemente usado para caches (e foi proposto para arquivos de registro). Por exemplo, no caso comum, é improvável que dois acessos sejam mapeados para o mesmo banco dentre 16 bancos. O armazenamento bancário é substancialmente mais barato do que adicionar portas de acesso. O potencial de conflitos bancários representa um risco estrutural.

Paul A. Clayton
fonte