Applying decoupled instruction offloading to enhance asymmetric multi-cores
dc.contributor.advisor | Beck Filho, Antonio Carlos Schneider | pt_BR |
dc.contributor.author | Vieira, Caio Rodrigo de Almeida | pt_BR |
dc.date.accessioned | 2022-09-17T05:11:12Z | pt_BR |
dc.date.issued | 2022 | pt_BR |
dc.identifier.uri | http://hdl.handle.net/10183/249119 | pt_BR |
dc.description.abstract | Asymmetric multi-cores (AMC) are an alternative to provide performance and energy efficiency in the same chip. AMC designs have at least two types of processors, a high performance but power-hungry core and an energy-efficient but low-performance core. AMC supports the same Instruction Set Architecture (ISA) and thus, can execute the same binaries. Besides asymmetry, modern processors present modular ISA extensions to enhance the CPU capabilities for niche applications. For example, ARM’s NEON extension features floating-point (FP) and single instruction, multiple data (SIMD) capa bilities for ARM processors. In ARM’s AMC design big.LITTLE, the NEON extension is implemented with different hardware costs for both core types, the high-performance big and the energy-efficient little. The big core implements two high-performance NEON functional units (FU), whereas the little core implements a simpler NEON FU. Previous works estimate that the area cost to implement both NEON FUs in big is equivalent to four full little cores. However, the NEON extension may be underused in many applications, leading to wasted expensive resources. When considering low NEON usage applications, there is no need to use the high-performance NEON units in big. Instead, a better solution would be to allow the big core to use the energy-efficient NEON unit in little. A common strategy to deal with expensive resources used infrequently is to share them between mul tiple processors. However, typical FU sharing schemes share the FU at the execute stage of the pipeline. The drawback of this coupled approach is that a processor must send the instruction to the shared FU and wait until the result is ready. In this work, we propose the decoupled offloader to allow the big core to use the energy-efficient NEON FU in little without waiting for the instruction to complete. We power gate both NEON units in big and use the offloader to save energy. We also propose an arbiter to detect the current application phase and fall back to use big’s NEON units when NEON is used intensively. Moreover, we use the decoupled offloader to propose partial cores with full ISA. We cre ate partial cores from big cores by removing its NEON units. We maintain the full ISA capability by using the decoupled offloader to execute the NEON instructions in a little core. The partial cores have the same performance as the big cores for integer instructions requiring a smaller area at the cost of limited NEON performance. We discuss how both ideas can be implemented and their advantages and drawbacks. | en |
dc.description.abstract | Multi-cores assimétricos (AMC) são uma alternativa para prover desempenho e eficiência energética no mesmo chip. AMCs têm pelo menos dois tipos de processadores: um de alto desempenho, mas baixa eficiência energética, e outro eficiente energeticamente, mas com baixo desempenho. AMCs suportam o mesmo ISA e, portanto, podem executar os mesmos binários. Além da assimetria, processadores modernos apresentam extensões modulares de ISA que permitem melhorar as capacidades de uma CPU em certos nichos de aplicações. A extensão NEON adiciona operações de FP e SIMD para processadores ARM. No caso do AMC big.LITTLE, da ARM, a extensão NEON é implementada com custos diferentes de hardware para ambos os tipos de núcleo, o big e o little. O núcleo big implementa duas FUs NEON de alto desempenho, enquanto o little implementa apenas uma FU mais simples. Trabalhos anteriores estimam que o custo de área para implementar ambas unidades NEON do big é equivalente a 4 núcleos little completos. Contudo, a extensão NEON pode ser pouco utilizada em muitas aplicações, levando à subutilização de recursos. Quando considerando aplicações que usam levemente o NEON, não há a necessidade de usar as unidades NEON de alto desempenho presentes no big. Ao invés disso, uma solução melhor seria possibilitar o núcleo big usar a unidade NEON do little, que é mais eficiente energeticamente. Uma estratégia comum para lidar com recursos caros que tendem a ser pouco utilizados é compartilhá-los entre múltiplos processadores. Contudo, abordagens tradicionais de compartilhamento de FUs tendem a ser feitas a partir do estágio de execução de um pipeline. A desvantagem dessa abordagem acoplada é que o processador deve enviar a instrução para FU compartilhada e esperar até que o resultado esteja pronto. Este trabalho propõe o despacho desacoplado de instruções para permitir que o núcleo big use a unidade NEON do little sem esperar que instrução complete. Dessa forma, é possível aplicar power gate em ambas unidades NEON do big e usar o despacho de instruções para economizar energia. Além disso, o trabalho também propõe um árbitro para detectar a atual fase da aplicação e desligar o despacho quando o NEON precisa ser usado intensamente. O despacho desacoplado é usado para propor núcleos parciais com ISA completo. Os nú cleos parciais são formados a partir de núcleos big removendo suas unidades NEON. Por meio do despacho desacoplado é possível manter o suporte completo ao ISA despachando instruções NEON para um núcleo little. Os núcleos parciais têm o mesmo desempenho dos núcleos big para aplicações de inteiro, mas necessitam de menos área e apresentam desempenho limitado com a extensão NEON. Ambas as ideias são discutidas acerca de sua implementação, vantagens e desvantagens. | pt_BR |
dc.format.mimetype | application/pdf | pt_BR |
dc.language.iso | por | pt_BR |
dc.rights | Open Access | en |
dc.subject | Multiprocessadores | pt_BR |
dc.subject | Asymmetric multi-core | en |
dc.subject | FU sharing | en |
dc.subject | Processamento : Alto desempenho | pt_BR |
dc.subject | Consumo de energia : Redução | pt_BR |
dc.subject | Instruction offloading | en |
dc.subject | ISA | en |
dc.title | Applying decoupled instruction offloading to enhance asymmetric multi-cores | pt_BR |
dc.title.alternative | Aplicando despacho de instruções desacoplado para melhorar multi-cores assimétricos | pt |
dc.type | Dissertação | pt_BR |
dc.identifier.nrb | 001149732 | pt_BR |
dc.degree.grantor | Universidade Federal do Rio Grande do Sul | pt_BR |
dc.degree.department | Instituto de Informática | pt_BR |
dc.degree.program | Programa de Pós-Graduação em Computação | pt_BR |
dc.degree.local | Porto Alegre, BR-RS | pt_BR |
dc.degree.date | 2022 | pt_BR |
dc.degree.level | mestrado | pt_BR |
Este item está licenciado na Creative Commons License
-
Ciências Exatas e da Terra (5143)Computação (1766)