Busca avançada
Ano de início
Entree


Algoritmos para compressão de microcodigo

Autor(es):
Edson Borin
Número total de Autores: 1
Tipo de documento: Tese de Doutorado
Instituição: Universidade Estadual de Campinas (UNICAMP). Instituto de Computação
Data de defesa:
Membros da banca:
Edil Severino Tavares Fernandes; Mauricio Breternitz Junior; Paulo Cesar Centoducatte; Rodolfo Jardim de Azevedo; Luiz Claudio Villar dos Santos; Sandro Rigo
Orientador: Guido Costa Souza de Araujo
Resumo

Microprogramação é uma técnica comum no projeto de unidades de controle em processadores. Além de facilitar a implementação da unidade de controle, o microcódigo pode ser modificado para adicionar novas funcionalidades ou aplicar correções a projetos já existentes. À medida que novas funcionalidades são adicionadas à CPU, a área e o consumo de energia associados ao microcódigo também aumentam. Em um projeto recente de um processador da Intel, direcionado a baixo consumo de energia e área reduzida, estimou-se que a área e o consumo de energia associados ao microcódigo corresponderiam a 20% do total do chip. Neste trabalho, investigamos a utilização de técnicas de compressão para reduzir o tamanho do microcódigo. A partir das restrições impostas no projeto de processadores de alto desempenho, fizemos uma análise qualitativa das técnicas de compressão de código e microcódigo e mostramos que a compressão de microcódigo em dois níveis é a técnica mais adequada para se comprimir o microcódigo nesses processadores. Na compressão de microcódigo em dois níveis, as microinstruções são substituídas por apontadores para dicionários que armazenam os padrões de bits extraídos do microcódigo. Os apontadores são armazenados em uma ROM denominada ?vetor de apontadores? e os padrões de bits residem em ROMs distintas, denominadas ?dicionários?. A técnica também permite que as colunas do microcódigo sejam agrupadas em conjuntos de forma a reduzir o número de padrões de bits nos dicionários. O agrupamento de colunas similares é fundamental para minimizar o número de padrões de bits nos dicionários e, conseqüentemente, maximizar a redução do tamanho do microcódigo. A principal contribuição desta tese é um conjunto de algoritmos para agrupar as colunas do microcódigo e maximizar a compressão. Resultados experimentais, com microcódigos extraídos de processadores em produção e em estágios avançados de desenvolvimento, mostram que os algoritmos propostosmelhoram de 6% a 20% os resultados obtidos com os outros algoritmos encontrados na literatura e comprimem o microcódigo em até 50% do seu tamanho original. Ainda neste trabalho, identificamos a necessidade de se comprimir o microcódigo com restrições no número de dicionários e na quantidade de colunas por dicionário. Também provamos que, com essas restrições, o agrupamento de colunas do microcódigo é um problema NP-Completo. Por fim, propomos um algoritmo para agrupar colunas sob estas restrições. Os resultados experimentaismostram que o algoritmo proposto é capaz de produzir bons resultados de compressão (AU)

Processo FAPESP: 02/08139-3 - Técnicas de geração de código e síntese de instruções para computação reconfigurável
Beneficiário:Edson Borin
Linha de fomento: Bolsas no Brasil - Doutorado Direto