A reconfigurable array for superscalar processors
Autor(a) principal: | |
---|---|
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 |