A reconfigurable array for superscalar processors

Detalhes bibliográficos
Autor(a) principal: Brandalero, Marcelo
Data de Publicação: 2014
Tipo de documento: Trabalho de conclusão de curso
Idioma: eng
Título da fonte: Repositório Institucional da UFRGS
Texto Completo: http://hdl.handle.net/10183/110752
Resumo: A performance de microprocessadores está intimamente relacionada à sua capacidade de explorar o paralelismo presente nas aplicações. O modelo superescalar tem sido, por muito tempo, o estado-da-industria em termos de paradigma microarquitetural; contudo, sob as restrições de área e potência impostos pelos projetos atuais, eles atingem seus limites de escalabilidade. Este trabalho propõe uma nova microarquitetura para processadores x86, baseado em um sistema superscalar ao qual um array reconfigurável é acoplado. O array implementa trechos críticos da computação utilizando lógica combinacional, o que aumenta a quantidade de paralelismo explorado. O sistema detecta trechos recorrentes de código em tempo de execução e utiliza tradução binária dinâmica para preparar esses trechos para execução no array reconfigurável; na próxima vez que o trecho precisar ser executado, o array é utilizado. Duas vantagens dessa solução são que ela é transparente para os programadores, pois é mantida a compatibilidade binária, e ela é simples de ser implementada (frente a outras soluções microarquiteturais), pois é baseada em um projeto superescalar. Adicionalmente, por utilizar-se a ISA x86, surge uma outra vantagem: a pressão em cima do decodificador, que necessita constantemente transformar instruções CISC em micro-ops, pode ser reduzida. O sistema foi modelado utilizando um simulador com precisão de ciclos, e resultados de performance foram coletados. Observa-se que o sistema apresenta maior potencial de exploração de paralelismo a nível de instruções que o superescalar.
id UFRGS-2_29878b2691d34709eeda1c53abd32d1b
oai_identifier_str oai:www.lume.ufrgs.br:10183/110752
network_acronym_str UFRGS-2
network_name_str Repositório Institucional da UFRGS
repository_id_str
spelling Brandalero, MarceloBeck Filho, Antonio Carlos Schneider2015-02-27T01:57:35Z2014http://hdl.handle.net/10183/110752000953010A performance de microprocessadores está intimamente relacionada à sua capacidade de explorar o paralelismo presente nas aplicações. O modelo superescalar tem sido, por muito tempo, o estado-da-industria em termos de paradigma microarquitetural; contudo, sob as restrições de área e potência impostos pelos projetos atuais, eles atingem seus limites de escalabilidade. Este trabalho propõe uma nova microarquitetura para processadores x86, baseado em um sistema superscalar ao qual um array reconfigurável é acoplado. O array implementa trechos críticos da computação utilizando lógica combinacional, o que aumenta a quantidade de paralelismo explorado. O sistema detecta trechos recorrentes de código em tempo de execução e utiliza tradução binária dinâmica para preparar esses trechos para execução no array reconfigurável; na próxima vez que o trecho precisar ser executado, o array é utilizado. Duas vantagens dessa solução são que ela é transparente para os programadores, pois é mantida a compatibilidade binária, e ela é simples de ser implementada (frente a outras soluções microarquiteturais), pois é baseada em um projeto superescalar. Adicionalmente, por utilizar-se a ISA x86, surge uma outra vantagem: a pressão em cima do decodificador, que necessita constantemente transformar instruções CISC em micro-ops, pode ser reduzida. O sistema foi modelado utilizando um simulador com precisão de ciclos, e resultados de performance foram coletados. Observa-se que o sistema apresenta maior potencial de exploração de paralelismo a nível de instruções que o superescalar.The performance of microprocessors is closely related to their ability to exploit the parallelism from applications. The superscalar model has long been the state-of-the-industry microarchitectural paradigm for exploiting instruction-level parallelism; however, they reach their scalability limits under the strict area and power constraints posed by modern designs. This work proposes a new microarchitecture for x86 processors, based on a traditional superscalar design tightly-coupled to a reconfigurable array. The array implements critical computation parts using combinational logic, improving the amount of parallelism exploited. The system detects recurring code sequences at runtime and employs dynamic binary translation to prepare these sequences for execution on the reconfigurable array; the next time the code sequence has to execute, the array is employed. Two major advantages of this solution are that it is transparent to the programmers, because binary compatibility is maintained, and it is simpler to implement (compared to other novel microarchitecture solutions), because it is based on a traditional superscalar design. Additionally, by targeting the x86 architecture, one additional advantage emerges: the burden on the x86 instruction decoder, which has to constantly translated CISC instructions into simpler micro-ops, is alleviated. The microarchitecture was modeled using a cycle-accurate simulator and performance results were collected. It is shown that the proposed system presents higher potential to explore instruction-level parallelism than the superscalar.application/pdfengArquitetura : ComputadoresProcessamento paralelox86Instruction-level parallelismTrace-level reuseReconfigurable architecturesBinary translationA reconfigurable array for superscalar processorsUm array reconfigurável para processadores superescalares info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2014Ciência da Computação: Ênfase em Engenharia da Computação: Bachareladograduaçãoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL000953010.pdf000953010.pdfTexto completo (inglês)application/pdf2563376http://www.lume.ufrgs.br/bitstream/10183/110752/1/000953010.pdf9e929b8ccf4f74a6fcc0134d32704290MD51TEXT000953010.pdf.txt000953010.pdf.txtExtracted Texttext/plain132398http://www.lume.ufrgs.br/bitstream/10183/110752/2/000953010.pdf.txt987da47e7b0949f920f895a1f521c6a8MD52THUMBNAIL000953010.pdf.jpg000953010.pdf.jpgGenerated Thumbnailimage/jpeg1014http://www.lume.ufrgs.br/bitstream/10183/110752/3/000953010.pdf.jpg578f6ca64832d8156ec5632295a59730MD5310183/1107522021-05-07 04:52:41.684605oai:www.lume.ufrgs.br:10183/110752Repositório de PublicaçõesPUBhttps://lume.ufrgs.br/oai/requestopendoar:2021-05-07T07:52:41Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv A reconfigurable array for superscalar processors
dc.title.alternative.pt.fl_str_mv Um array reconfigurável para processadores superescalares
title A reconfigurable array for superscalar processors
spellingShingle A reconfigurable array for superscalar processors
Brandalero, Marcelo
Arquitetura : Computadores
Processamento paralelo
x86
Instruction-level parallelism
Trace-level reuse
Reconfigurable architectures
Binary translation
title_short A reconfigurable array for superscalar processors
title_full A reconfigurable array for superscalar processors
title_fullStr A reconfigurable array for superscalar processors
title_full_unstemmed A reconfigurable array for superscalar processors
title_sort A reconfigurable array for superscalar processors
author Brandalero, Marcelo
author_facet Brandalero, Marcelo
author_role author
dc.contributor.author.fl_str_mv Brandalero, Marcelo
dc.contributor.advisor1.fl_str_mv Beck Filho, Antonio Carlos Schneider
contributor_str_mv Beck Filho, Antonio Carlos Schneider
dc.subject.por.fl_str_mv Arquitetura : Computadores
Processamento paralelo
topic Arquitetura : Computadores
Processamento paralelo
x86
Instruction-level parallelism
Trace-level reuse
Reconfigurable architectures
Binary translation
dc.subject.eng.fl_str_mv x86
Instruction-level parallelism
Trace-level reuse
Reconfigurable architectures
Binary translation
description A performance de microprocessadores está intimamente relacionada à sua capacidade de explorar o paralelismo presente nas aplicações. O modelo superescalar tem sido, por muito tempo, o estado-da-industria em termos de paradigma microarquitetural; contudo, sob as restrições de área e potência impostos pelos projetos atuais, eles atingem seus limites de escalabilidade. Este trabalho propõe uma nova microarquitetura para processadores x86, baseado em um sistema superscalar ao qual um array reconfigurável é acoplado. O array implementa trechos críticos da computação utilizando lógica combinacional, o que aumenta a quantidade de paralelismo explorado. O sistema detecta trechos recorrentes de código em tempo de execução e utiliza tradução binária dinâmica para preparar esses trechos para execução no array reconfigurável; na próxima vez que o trecho precisar ser executado, o array é utilizado. Duas vantagens dessa solução são que ela é transparente para os programadores, pois é mantida a compatibilidade binária, e ela é simples de ser implementada (frente a outras soluções microarquiteturais), pois é baseada em um projeto superescalar. Adicionalmente, por utilizar-se a ISA x86, surge uma outra vantagem: a pressão em cima do decodificador, que necessita constantemente transformar instruções CISC em micro-ops, pode ser reduzida. O sistema foi modelado utilizando um simulador com precisão de ciclos, e resultados de performance foram coletados. Observa-se que o sistema apresenta maior potencial de exploração de paralelismo a nível de instruções que o superescalar.
publishDate 2014
dc.date.issued.fl_str_mv 2014
dc.date.accessioned.fl_str_mv 2015-02-27T01:57:35Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/110752
dc.identifier.nrb.pt_BR.fl_str_mv 000953010
url http://hdl.handle.net/10183/110752
identifier_str_mv 000953010
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Repositório Institucional da UFRGS
collection Repositório Institucional da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/110752/1/000953010.pdf
http://www.lume.ufrgs.br/bitstream/10183/110752/2/000953010.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/110752/3/000953010.pdf.jpg
bitstream.checksum.fl_str_mv 9e929b8ccf4f74a6fcc0134d32704290
987da47e7b0949f920f895a1f521c6a8
578f6ca64832d8156ec5632295a59730
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv
_version_ 1801224479584550912