Você está na página 1de 2

Universidade Federal da Paraba UFPB Centro de Cincias Exatas e da Natureza CCEN Centro de Informtica CI Programa de Ps-Graduao em Informtica PPGI

PPGI Aluno: Luciano Carvalho de Medeiros Jnior

Data-flow Analysis in Superscalar Computer Architecture


O referente artigo trata do problema de deteco de risco de dados em execues superescalares. mostrada uma representao do algoritmo de deteco de instrues independentes. E o algoritmo implementado em um simulador de software, que representa a forma como o processador Intel Pentium funciona. O artigo foi publicado por Elena I. Zaharieva-Stoyanova na 6 Conferncia Internacional Telecommunications in Modern Satellite, Cable and Broadcasting Service, em outubro de 2003. Grande parte dos processadores atuais faz uso da arquitetura superescalar, onde com mais de um pipeline possvel prover paralelismo em nvel de instruo, que proporciona a execuo de mais de uma instruo por ciclo. Isto aumenta o desempenho da arquitetura dos computadores, mas para atingir um desempenho mximo depende de uma sequncia de instrues que no sejam dependentes. E frequentemente, a execuo de uma instruo depende do resultado de uma instruo anterior, o que acaba prejudicando a execuo do pipeline. Essa situao chamada de risco de dados, e este artigo trata sobre a deteco dela na execuo em arquiteturas superescalares. Segundo a autora existem diferentes tcnicas para evitar risco de dados, como por exemplo, anlise de fluxo de dados que demonstrado por meio de dois algoritmos no decorrer do artigo. Ela cita que o primeiro algoritmo, usado para detectar a dependncia das instrues, ser usado em um software simulador de uma arquitetura de um Pentium. Concordo quando ela diz que um simulador uma boa ferramenta para estudar essas arquiteturas, inclusive em uma educao superior para demonstrar o pipeline. Mas senti falta de uma imagem deste simulador no artigo, sendo encontradas apenas descries textuais do mesmo. feito uma breve fundamentao terica, mostrando os trs tipos de riscos que afetam a execuo de uma sequncia de instrues; risco de dados, risco estrutural e risco de controle. Como o trabalho foca mais no risco de dados, tambm so explicadas as trs categorias deste risco: RAW (read after write), WAR (write after read) e WAW (write after write). O primeiro algoritmo, que foi utilizado no simulador, relativamente simples. Dado um vetor com a sequncia das instrues, ele varre o vetor e retorna um vetor de buffer com o mesmo nmero de elementos do vetor de instrues, onde cada elemento diz se a instruo correspondente dependente ou no da instruo anterior. Caso sejam dependentes o valor do elemento 1, caso contrrio 0. Para determinar se as instrues so dependentes o algoritmo verifica se o destino da instruo anterior o mesmo da fonte da instruo atual, ou se as instrues forem da ULA e possurem o mesmo destino. Este algoritmo verifica a dependncia de duas instrues vizinhas. E para uma melhor anlise mais interessante encontrar dependncia entre mais de duas instrues vizinhas. O segundo algoritmo apresentado se prope a isso, sendo uma modificao do primeiro, que agora analisa a dependncia entre k instrues vizinhas, e retorna uma matriz de dependncia em vez de um vetor. Este segundo algoritmo pode ser utilizado em uma lgica de execuo fora de ordem. Resumindo, a autora mostrou em seu trabalho dois algoritmos de deteco de dependncia entre instrues, que foram utilizados em um software simulador da arquitetura

IA-32. Para isso ela montou uma base terica sobre o assunto, que mesmo sendo relativamente curta consegue introduzir o leitor perante o assunto tratado. Como j falei anteriormente, s senti falta de alguma ilustrao do seu simulador, alguma imagem. No mais, um bom artigo. Referncia: Zaharieva-Stoyanova, E. I. (2003). Data-flow analysis in superscalar computer architecture execution. 6th International Conference on Telecommunications in Modern Satellite, Cable and Broadcasting Service, 2003. TELSIKS 2003., 2, 622-625. Ieee. doi:10.1109/TELSKS.2003.1246301

Você também pode gostar