Algoritmos para compressão de microcodigo

Orientador: Guido Costa Souza de Araujo === Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação === Made available in DSpace on 2018-08-08T22:09:00Z (GMT). No. of bitstreams: 1 Borin_Edson_D.pdf: 1623538 bytes, checksum: 6e51b4bb1114ccaa088f88712c601000 (MD5) Previous iss...

Full description

Bibliographic Details
Main Author: Borin, Edson, 1979-
Other Authors: UNIVERSIDADE ESTADUAL DE CAMPINAS
Format: Others
Language:Portuguese
Published: [s.n.] 2007
Subjects:
Online Access:BORIN, Edson. Algoritmos para compressão de microcodigo. 2007. 120f. Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação, Campinas, SP. Disponível em: <http://www.repositorio.unicamp.br/handle/REPOSIP/276200>. Acesso em: 8 ago. 2018.
http://repositorio.unicamp.br/jspui/handle/REPOSIP/276200
id ndltd-IBICT-oai-repositorio.unicamp.br-REPOSIP-276200
record_format oai_dc
collection NDLTD
language Portuguese
format Others
sources NDLTD
topic Arquitetura de computador
Compressão de dados (Computação)
Computer architecture
Data compression (Computer science)
spellingShingle Arquitetura de computador
Compressão de dados (Computação)
Computer architecture
Data compression (Computer science)
Borin, Edson, 1979-
Algoritmos para compressão de microcodigo
description Orientador: Guido Costa Souza de Araujo === Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação === Made available in DSpace on 2018-08-08T22:09:00Z (GMT). No. of bitstreams: 1 Borin_Edson_D.pdf: 1623538 bytes, checksum: 6e51b4bb1114ccaa088f88712c601000 (MD5) Previous issue date: 2007 === 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 === Abstract: Microprogramming is a widely known technique used to implement processor control units. Microcode makes the control unit design process easier, as it can be modified to enhance functionality and to apply patches to an existing design. As more features get added to a CPU core, the area and power costs associated with the microcode increase. In a recent Intel internal design, targeted to low power and small footprint, the area and the power consumption costs associated with the microcode approached 20% of the total die. In this work, we investigate the use of compression techniques to reduce the microcode size. Based on the constraints imposed by high performance processor design, we analyze the existing microcode and code compression techniques and show that the two level microcode compression technique is the most appropriate to compress the microcode on high performance processor. This technique replaces the original microinstructions by pointers to dictionaries that hold bit patterns extracted from the microcode. The ¿pointer arrays¿ and the ¿dictionaries¿ are ROMs that store the pointers and the bit patterns, respectively. The technique allows the microcode columns to be grouped into clusters, so that the number of bit patterns inside the dictionaries is reduced. In order to maximize the microcode compression, similar columns must be grouped together. The main contribution of this thesis is a set of algorithms to group similar microcode columns into clusters, so as to maximize the microcode size reduction. Experimental results, using microcodes from production processors and processors in advanced development stages, show that the proposed algorithms improve from 6% to 20% the compression results found by previous works and compress the microcode to 50% of its original size. We show the importance of compressing microcode under design constraints such as the number of dictionaries and the number of columns per dictionary. We also prove that, under these constraints, the problem of grouping similar columns is NP-Complete. Finally, we propose an algorithm to group similar columns under such constraints. The experimental results show that the proposed algorithm provides good compression results === Doutorado === Arquitetura de Computadores === Doutor em Ciência da Computação
author2 UNIVERSIDADE ESTADUAL DE CAMPINAS
author_facet UNIVERSIDADE ESTADUAL DE CAMPINAS
Borin, Edson, 1979-
author Borin, Edson, 1979-
author_sort Borin, Edson, 1979-
title Algoritmos para compressão de microcodigo
title_short Algoritmos para compressão de microcodigo
title_full Algoritmos para compressão de microcodigo
title_fullStr Algoritmos para compressão de microcodigo
title_full_unstemmed Algoritmos para compressão de microcodigo
title_sort algoritmos para compressão de microcodigo
publisher [s.n.]
publishDate 2007
url BORIN, Edson. Algoritmos para compressão de microcodigo. 2007. 120f. Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação, Campinas, SP. Disponível em: <http://www.repositorio.unicamp.br/handle/REPOSIP/276200>. Acesso em: 8 ago. 2018.
http://repositorio.unicamp.br/jspui/handle/REPOSIP/276200
work_keys_str_mv AT borinedson1979 algoritmosparacompressaodemicrocodigo
AT borinedson1979 microcodecompressionalgorithms
_version_ 1718878826284449792
spelling ndltd-IBICT-oai-repositorio.unicamp.br-REPOSIP-2762002019-01-21T20:55:16Z Algoritmos para compressão de microcodigo Microcode compression algorithms Borin, Edson, 1979- UNIVERSIDADE ESTADUAL DE CAMPINAS Araújo, Guido Costa Souza de, 1962- Fernandes, Edil Severino Tavares Junior, Mauricio Breternitz Centoducatte, Paulo Cesar Azevedo, Rodolfo Jardim de Santos, Luiz Claudio Villar dos Rigo, Sandro Arquitetura de computador Compressão de dados (Computação) Computer architecture Data compression (Computer science) Orientador: Guido Costa Souza de Araujo Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação Made available in DSpace on 2018-08-08T22:09:00Z (GMT). No. of bitstreams: 1 Borin_Edson_D.pdf: 1623538 bytes, checksum: 6e51b4bb1114ccaa088f88712c601000 (MD5) Previous issue date: 2007 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 Abstract: Microprogramming is a widely known technique used to implement processor control units. Microcode makes the control unit design process easier, as it can be modified to enhance functionality and to apply patches to an existing design. As more features get added to a CPU core, the area and power costs associated with the microcode increase. In a recent Intel internal design, targeted to low power and small footprint, the area and the power consumption costs associated with the microcode approached 20% of the total die. In this work, we investigate the use of compression techniques to reduce the microcode size. Based on the constraints imposed by high performance processor design, we analyze the existing microcode and code compression techniques and show that the two level microcode compression technique is the most appropriate to compress the microcode on high performance processor. This technique replaces the original microinstructions by pointers to dictionaries that hold bit patterns extracted from the microcode. The ¿pointer arrays¿ and the ¿dictionaries¿ are ROMs that store the pointers and the bit patterns, respectively. The technique allows the microcode columns to be grouped into clusters, so that the number of bit patterns inside the dictionaries is reduced. In order to maximize the microcode compression, similar columns must be grouped together. The main contribution of this thesis is a set of algorithms to group similar microcode columns into clusters, so as to maximize the microcode size reduction. Experimental results, using microcodes from production processors and processors in advanced development stages, show that the proposed algorithms improve from 6% to 20% the compression results found by previous works and compress the microcode to 50% of its original size. We show the importance of compressing microcode under design constraints such as the number of dictionaries and the number of columns per dictionary. We also prove that, under these constraints, the problem of grouping similar columns is NP-Complete. Finally, we propose an algorithm to group similar columns under such constraints. The experimental results show that the proposed algorithm provides good compression results Doutorado Arquitetura de Computadores Doutor em Ciência da Computação 2007 2018-08-08T22:09:00Z 2018-08-08T22:09:00Z 2007-04-04T00:00:00Z info:eu-repo/semantics/publishedVersion info:eu-repo/semantics/doctoralThesis (Broch.) BORIN, Edson. Algoritmos para compressão de microcodigo. 2007. 120f. Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação, Campinas, SP. Disponível em: <http://www.repositorio.unicamp.br/handle/REPOSIP/276200>. Acesso em: 8 ago. 2018. http://repositorio.unicamp.br/jspui/handle/REPOSIP/276200 por info:eu-repo/semantics/openAccess 120f. : il. application/octet-stream [s.n.] Universidade Estadual de Campinas. Instituto de Computação Programa de Pós-Graduação em Ciência da Computação reponame:Repositório Institucional da Unicamp instname:Universidade Estadual de Campinas instacron:UNICAMP