O documento discute a arquitetura VLIW (Very Long Instruction Word) que visa alcançar maiores níveis de paralelismo de instrução através da execução de instruções longas compostas por múltiplas operações. A arquitetura VLIW depende fortemente dos compiladores para otimizar o código e explorar o paralelismo de forma eficaz, porém os compiladores enfrentam limitações nessa tarefa.
[Pereira ic'2011] explorando o paralelismo no nível de threads
VLIW arquitetura para maior desempenho em processamento
1. RESUMO VLIW - VERY LONG INSTRUCTION WORD
A necessidade de maior processamento nas máquinas tornou-se uma
apreensão de todas as pessoas que estão envolvidas no meio tecnológico onde
desempenho é a chave para alcançar a resolução de problemas cada vez
maiores da área da computação.
Dentre as soluções encontradas para a resolução deste problema de
processamento a mais conhecida é o uso de pipelines, onde os processadores
utilizam o pipelining para sobrepor a execução de instruções e melhorar o
desempenho, chamado este de ILP que quer dizer instruções em nível de
paralelismo, tendo o mesmo dois focos, um sendo as técnicas dinâmicas
dependentes de hardware e as técnicas estáticas dependentes de softwares.
A arquitetura VLIW tenta alcançar maiores níveis de paralelismo de
instrução pela execução de instruções longas compostas por múltiplas
operações. As arq. VLIW que utilizam ILP baseada em softwares são
dependentes do resultado da compilação e da dependência das variáveis para
apresentar um bom desempenho no final. Estas arquiteturas tentam alcançar
maiores níveis de paralelismo de instrução pela execução de instruções longas
compostas por múltiplas operações.
Compiladores específicos são utilizados para cada tipo de arquitetura
aprimora um código para melhor desempenho mas ao mesmo tempo diminui a
compatibilidade. A arquitetura VLIW clássica pe simples, com um cache de
instrução e um registrador de instrução únicos são utilizados para alimentar
todas as unidades funcionais.
A técnica trace scheduling usada para compactação de operações de
microprogramas, onde um segmento de código que representa um caminho de
execução provável de ser executado é chamado de trace, então o trace
scheduling consiste em construir um grafo disjunto com todas as operações a
serem escalonadas, existindo troca de ordem se necessário.
Dentre as formas de obter paralelismo com pipelining usando a arquitetura
VLIW é mais simples e barata porém contem limitações relacionada ao
compilador e mesmo em algum momento os compiladores encontrarão limitação
para encontrar instruções paralelas, e novos paradigmas de programação serão
necessários para que o mesmo seja pensado desde a criação.