Informações:

Publicações do PESC

Título
Efeito da Reorganização do Código Binário no Desempenho de “Cache” de Instruções em Arquiteturas RISC
Linha de pesquisa
Arquitetura e Sistemas Operacionais
Tipo de publicação
Dissertação de Mestrado
Número de registro
Data da defesa
31/3/2004
Resumo

Esta tese avalia o efeito provocado pela reorganização do código binário de arquiteturas do tipo RISC no desempenho da Memória Cache de Instruções. Para tal foi empregado o simulador funcional sim-fast do pacote Simplescalar e criamos um modelo parametrizável de Memória Cache de Instruções (e respectivos mecanismos de gerenciamento) para simular os programas inteiros do conjunto SPEC95. Avaliamos as taxas de acertos (hits) e falhas (misses) de cada membro da família de caches de instruções produzidas por diferentes algoritmos de reordenação de código.

Definimos tipos específicos de Memória Cache de Instruções e de algoritmos de reorganização do código binário. Comparando o desempenho do binário original com o dos binários reorganizados, verificamos que uma simples mudança no layout do código binário pode oferecer um grande aumento no desempenho.

Ao reordenarmos os blocos básicos de um binário precisamos também ajustar o campo de endereço de cada instrução de desvio para que as instruções alvo sejam atingidas. Considerando que estamos manipulando código binário e que o respectivo programa fonte nem sempre está disponível, então desenvolvemos um esquema de mapeamento que, apesar de sua simplicidade, garante a execução precisa de código reordenado dispensando o ajuste exigido pelos métodos convencionais de otimização de código: compila-obtém perfil de execução-reordena-link.

Apesar do custo adicional desse esquema de mapeamento, ele permite a execução de binários que se reorganizam dinamicamente. Com o consistente aumento de desempenho apresentado por recentes máquinas, acreditamos que a reorganização dinâmica de binários seja viável e que o mecanismo de mapeamento aqui sugerido seja aperfeiçoado e devidamente incorporado no hardware de futuros processadores.

Abstract

This thesis evaluates memory cache instructions performance provoked by the binary code reorganization. For this we used the functional simulator sim-fast of the SimpleScalar package and created a parameterized model of instruction Cache Memory (and respective mechanisms of management) to simulate the entire SPEC95 set programs. We evaluate the taxes of hits and misses in each member of the instructions cache family produced by different code reordering algorithms.

We define specific types of Instruction Cache Memory and reordering binary code algorithms. After compare the performance of the origin binary code with the reorganized binary, we ver@ that a simple change in the structure of the binary code can offer a great increase in the performance.

The simple basic blocks reordering of a binary does not allow it's execution: the address field of each branch instruction must be correctly adjusted that the target instruction are reached. Considering that we are manipulating binary code and that the respective source program is not always available, then we develop a mapping project that, although its simplicity, guarantees the right execution of rearranged code excusing the adjustment demanded for the conventional methods of code optirnization: compile - gets execution profile - rearranges - link.

Despite the additional cost required by our mapping project, it thus makes possible the reordering of the binary basic blocks in execution time, becoming very useful in the execution of binary that are reorganized dynamically.

Considering the consistent increase in the processing capacity presented in recent machines, we believe that the topical binary reorganization would be more explored and that the mapping mechanism here suggested being improved and incorporated in the future processor hardware.

Arquivo
Topo