Documente Academic
Documente Profesional
Documente Cultură
Perspectivas
Alternativas para o Paralelismo a Nvel de Instrucao
Andre Augusto Cire (015463)
Instituto de Computacao - UNICAMP
Caixa Postal 6176
Campinas, Brasil - 13084-971
andre.cire@ic.unicamp.br
como a analise de paralelismo e estatica, ela deve sem- Neste tipo de escalonamento, uma determinada funcao e di-
pre considerar o pior caso da execucao do codigo. Isto vidida em um conjunto de traces, que representam os camin-
implica que informacoes obtidas apenas em tempo de hos com maior probabilidade de execucao. Em um trace, po-
execucao nao podem ser aproveitados para otimizacao dem existir branches condicionais que levam a outros traces
de branches, por exemplo. Nos trabalhos de [9, 7], (portas de sada) ou transicoes de outros traces para ele
propoe-se utilizar informacoes de profiling como uma (portas de entrada). As instrucoes sao entao escalonadas a
forma de sanar este problema; partir dos traces e ignorando os fluxos de controle, sendo
necessario armazenar as informacoes de todas as portas de
a densidade de compactacao (taxa de operacoes por in- entrada e sada de cada trace para manter a semantica das
strucao) depende do paralelismo inerente das instrucoes. aplicacoes.
A utilizacao do Escalonamento por Traces possibilita a ex- Todas as operacoes de controle em todos os escopos de agen-
ploracao de paralelismo muito alem daquela contida em blo- damento sao adiados ou se tornam predicados. Em caso de
cos basicos, ja que nao ha restricoes associadas a blocos na branches adiados, o escalonador busca operacoes apropri-
escolha dos traces, o que faz com que o metodo seja conve- adas para preencher os slots vazio e, caso nao for possvel
niente para processadores com um grande numero de despa- encontrar tais operacoes, simplesmente insere nops. Ja no
chos por ciclo. caso de se tornarem predicados, as dependencias de cont-
role se tornam dependencias de dados (tal como no escalon-
4.2 Escalonamento por Superblocos amento por hiperblocos), melhor otimizaveis e, portanto,
O algoritmo de Escalonamento por Superblocos [7] e semel- preferveis.
hante ao metodo da secao anterior, diferenciando-se por evi-
tar a necessidade de armazenar todos os fluxos de controle 5. MAQUINAS VLIW
ao definir traces que nao possuem pontos de entrada: sao O objetivo desta secao e tracar algumas caractersticas basicas
os superblocos. O controle entra apenas a partir do topo do das maquinas que usam tecnologia VLIW, a fim de identi-
trace, e pode sair por um ou mais pontos de sada. ficarmos suas caractersticas principais e aspectos comuns.
Contudo, apenas duas empresas produziram comercialmente
Os superblocos sao formados em basicamente dois passos: maquinas puramente VLIW: a Multiflow Computer, Inc. e
inicialmente, identificam-se os traces a partir de informacoes a Cydrome, Inc.. Pelo fato de nao atingirem sucesso de
de profiling. Em seguida, um metodo denominado tail du- mercado, como visto na secao 2, ha pouqussimos dados so-
plication (duplicacao de cauda) e utilizado a fim de eliminar bre a eficiencia real dessas maquinas, que ficaram restritas a
todos os pontos de entrada do trace, movendo-os para blocos poucas unidades entregues. Os dados das duas respectivas
basicos duplicados. subsecoes foram retiradas de [9].
Uma desvantagem do Escalonamento por Traces e Superblo- Tambem serao apresentados alguns aspectos arquiteturais
cos e que ambos os algoritmos consideram apenas um unico de duas tecnologias bastante relevantes para a abordagem
possvel caminho de execucao por vez. Portanto, se as in- VLIW, citadas na secao 2: o processador Itanium, da Intel,
formacoes do profiling levarem a escolha errada deste cam- e o Crosue, da Transmeta. As informacoes do Intel Itanium
inho, havera um grande desperdcio de ciclos do proces- foram obtidas de [8] e, do Transmeta Crosue, de [10].
sador. Para contornar este problema, surgem os algorit-
mos de Escalonamento por Hiperblocos e Escalonamento por
Arvore de Decisao, descritos a seguir,
5.1 Multiflow TRACE
Os principais objetivos perseguidos no projeto do proces-
sador Multiflow TRACE foram:
4.3 Escalonamento por Hiperblocos
Neste algoritmo, multiplos caminhos de execucao sao agen-
dados em uma unidade simples, utilizando-se predicacao pra projeto modular, com um numero de unidades fun-
definir os escopos de cada agendamento. Uma predicacao cionais expansvel;
equivale a execucao condicional de instrucoes baseadas no
valor de operandos booleanos, os predicados. uso de grande quantidade de componentes eletronicos
padrao e de baixo custo;
Um hiperbloco pode conter diversos caminhos combinados
por um predicado do tipo if e por duplicacao de caudas, uso de memorias DRAM convencionais para obter uma
mas nunca conter blocos basicos com chamadas de proced- memoria principal de alta capacidade a um baixo custo;
imentos ou acessos a memoria nao resolvidos. Tal como no
allcancar alta performance para computacoes de ponto
superbloco, ha apenas uma entrada com multiplas sadas.
flutuante de 64 bits;
Um ponto importante a ser notado e que o processo de con- boa adequacao ao ambiente multi-usuario.
versao de predicados if transforma as dependencias de cont-
role em dependencia de dados e, portanto, mais otimizacoes
podem ser aplicadas no hiperbloco quando comparado ao O nucleo do processador e dividido em uma unidade de in-
processo de Escalonamento por Traces regular. teiros e uma de ponto flutuante. Existem bancos de reg-
istradores separados para cada uma das unidades, pois di-
4.4 Escalonamento por Arvore de Decisao ficilmente e realizado uma operacao de ponto flutuante so-
Este metodo e similar ao Escalonamento por Hiperblocos, bre dados inteiros (e vice-versa), enquanto a ideia e realizar
com o fluxo de controle dos blocos basicos representados operacoes sobre dados inteiros e calculos de enderecos em
como uma arvore [21]. Os escopos de agendamento tambem paralelo com operacoes de ponto flutuante.
compreendem uma simples entrada e multiplas sadas, e
cada folha da arvore de decisao ou termina em uma chamada O conjunto de instrucoes RISC-like sobre inteiros contem
de procedimento, ou pula para uma arvore diferente. opcodes dedicados a operacoes aritmeticas, logicas e de com-
paracao. Existem primitivas de alto desempenho para mul-
Nao ha pontos de sada do interior de blocos basicos de um tiplicacao de 32 bits e operacoes de shift, merge e extract
arvore de decisao, o ponto de entrada e denominado de raiz para a manipulacao de campos de bits e bytes e o acesso
da arvore. Predicacao tambem pode ser empregada neste a memoria e realizado por operacoes de load e store em
algoritmo, a fim de permitir mais otimizacoes e explorar pipelines. Ja as operacoes de adicao de ponto flutuante tem
mais o ILP, na forma descrita a seguir. sobre as unidades funcionais dessa maquina uma latencia de
6 ciclos, em contraste com a latencia simples das unidades Basicamente, e uma arquitetura VLIW de 64 bits, capaz de
inteiras. executar ate 6 operacoes por ciclo por meio de 4 unidades
inteiras, 4 multimdias, 2 para loads/stores, 2 de ponto flutu-
O processador Trace mais poderoso poderia incorporar palavras ante com precisao estendida e, por fim, mais 2 de ponto flu-
de instrucao com ate 1024 bits, que poderiam iniciar 28 tuante com precisao simples. Cada palavra VLIW consiste
operacoes por instrucao, com um desempenho de 215 VLIW de um ou mais pacotes de 128 bits, contendo 3 operacoes
MIPS e 60 MFLOPS. A poltica do barramento e arbitrada e um template, isto e, a codificacao das combinacoes mais
pelo compilador, obtendo barramentos simples, rapidos e de frequentes de tipos de operacao. Desta forma, duas in-
baixo custo. strucoes sao lidas da memoria a cada ciclo, totalizando as 6
operacoes citadas previamente.
A alta largura de banda da memoria dessa maquina era
alcancada utilizando entrelacamento de memoria, 0Kb de Ele tambem comporta 128 registradores de uso geral de 64
cache de dados e nenhum hardware para escalonar referencia bits, 128 registradores de ponto flutuante de 82 bits e mais
a memoria. Os projetistas argumentaram na epoca que, 64 registradores de predicados, para a execucao condicional
para grandes aplicacoes cientficas que possuam algum padrao de operacoes (as nao confirmadas sao sumariamente descar-
de referencia a memoria, o entrelacamento consegue susten- tadas). O compilador, por sua vez, pode escalonar os loops
tar um desempenho melhor do que o uso de caches de dados. a partir da tecnica de software pipeline [9].
Outra tecnica proposta pelos pesquisadores da IBM [9] e [3] S. Dasgupta. The design of some language constructs
o conceito de DIF (Dynamic Instruction Formatting) que for horizontal microprogramming. In ISCA 77:
utiliza o palavras longas de instrucao escalonadas dinami- Proceedings of the 4th annual symposium on Computer
camente e armazenadas em uma cache (DIF cache) para architecture, pages 1016, New York, NY, USA, 1977.
execucao paralela das operacoes. O objetivo dessa proposta ACM Press.
[4] K. Ebcioglu, E. R. Altman, S. W. Sathaye, and [19] D. W. Wall. Limits of instruction-level parallelism. In
M. Gschwind. Execution-based scheduling for VLIW Proceedings of the 4th International Conference on
architectures. In European Conference on Parallel Architectural Support for Programming Languages and
Processing, pages 12691280, 1999. Operating System (ASPLOS), volume 26, pages
176189, New York, NY, 1991. ACM Press.
[5] J. A. Fisher. Trace scheduling: A technique for global
microcode compaction. IEEE Transactions on [20] M. Wilkes. The genesis of microprogramming. Ann.
Computers, IEEE, C-30(7):478490, 1981. Hist. Comp., 8(2):115126, 1986.
[6] F. Gasperoni. Scheduling for Horizontal Systems: The [21] H. Zhou, M. Jennings, and T. Conte. Tree traversal
VLIW Paradigm in Persepctive. PhD thesis, May scheduling: A global scheduling technique for
1991. vliw/epic processors. In Proceedings of the 14 th
Annual Workshop on Languages and Compilers for
[7] W.-M. W. Hwu, S. A. Mahlke, W. Y. Chen, P. P. Parallel Computing (LCPC01). LNCS, Springer
Chang, N. J. Warter, R. A. Bringmann, R. G. Verlag, 2001.
Ouellette, R. E. Hank, T. Kiyohara, G. E. Haab, J. G.
Holm, and D. M. Lavery. The superblock: an effective
technique for VLIW and superscalar compilation. J.
Supercomput., 7(1-2):229248, 1993.