João Paulo Cardoso de Lima
Current Organizations / Institutes
The organizations/institutes from the scholar's latest article
Previous Organizations / Institutes
The organizations / institutes from the scholar's other articles in the past ten years
João Paulo Cardoso de Lima has a total of 54 co-authors. Here are the top co-authors by number of shared publications:
- Luigi Carro
Informatics Institute - Federal University of Rio Grande do Sul - Porto Alegre
6 shared publications - Jeronimo Castrillon
Technische Universität Dresden Dresden Germany
5 shared publications - Asif Ali Khan
TU Dresden, Dresden, Germany
4 shared publications - Hamid Farzaneh
TU Dresden
4 shared publications - Rafael Fão de Moura
Informatics Institute - Federal University of Rio Grande do Sul - Porto Alegre
4 shared publications - Juarez Bento da Silva
Universidade Federal de Santa Catarina
3 shared publications
Latest Publications
- Open Access
- 22 June 2026
- Published by Association for Computing Machinery (ACM)
- p. 715-716
Low-overhead Bitwise Shifting in DRAM
- 22 June 2026
- Published by Association for Computing Machinery (ACM)
- p. 715-716
Open AccessLow-overhead Bitwise Shifting in DRAM
- Open Access
- 28 September 2025
- Published by Association for Computing Machinery (ACM)
- p. 31-32
Tutorial: Hardware-Aware Compilation and Simulation for In-Memory Computing
- 28 September 2025
- Published by Association for Computing Machinery (ACM)
- p. 31-32
Open AccessTutorial: Hardware-Aware Compilation and Simulation for In-Memory Computing
- 28 August 2025
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Design & Test
- Vol. 42 (6) , 75-86
Cross-Layer Design and Design Automation for In-Memory Computing Based on Nonvolatile Memory Technologies
Editor’s notes: This article highlights the rise of in-memory computing (IMC), especially for data-intensive applications along with the role of emerging nonvolatile memory technologies in advancing IMC hardware. Key advancements in modeling, simulation, and design tools are discussed, alongside the challenges and opportunities that will shape the future of efficient IMC fabrics. —Jörg Henkel, Vice-President of Publications, IEEE CEDA —L. Miguel Silveira, President, IEEE CEDA
- 28 August 2025
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Design & Test
- Vol. 42 (6) , 75-86
Cross-Layer Design and Design Automation for In-Memory Computing Based on Nonvolatile Memory Technologies
Editor’s notes: This article highlights the rise of in-memory computing (IMC), especially for data-intensive applications along with the role of emerging nonvolatile memory technologies in advancing IMC hardware. Key advancements in modeling, simulation, and design tools are discussed, alongside the challenges and opportunities that will shape the future of efficient IMC fabrics. —Jörg Henkel, Vice-President of Publications, IEEE CEDA —L. Miguel Silveira, President, IEEE CEDA
- Open Access
- 23 June 2024
- Published by Association for Computing Machinery (ACM)
- p. 1-6
SHERLOCK: Scheduling Efficient and Reliable Bulk Bitwise Operations in NVMs
Bulk bitwise operations are commonplace in application domains such as databases, web search, cryptography, and image processing. The ever-growing volume of data and processing demands of these domains often result in high energy consumption and latency in conventional system architectures, mainly due to data movement between the processing and memory subsystems. Non-volatile memories (NVMs), such as RRAM, PCM and STT-MRAM, facilitate conducting bulk-bitwise logic operations in-memory (CIM). Efficient mapping of complex applications to these CIM-capable NVMs is non-trivial and can even lead to slowdowns. This paper presents Sherlock, a novel mapping and scheduling method for efficient execution of bulk bitwise operations in NVMs. Sherlock collaboratively optimizes for performance and energy consumption and outperforms the state-of-the-art by 10× and 4.6×, respectively.
- 23 June 2024
- Published by Association for Computing Machinery (ACM)
- p. 1-6
Open AccessSHERLOCK: Scheduling Efficient and Reliable Bulk Bitwise Operations in NVMs
Bulk bitwise operations are commonplace in application domains such as databases, web search, cryptography, and image processing. The ever-growing volume of data and processing demands of these domains often result in high energy consumption and latency in conventional system architectures, mainly due to data movement between the processing and memory subsystems. Non-volatile memories (NVMs), such as RRAM, PCM and STT-MRAM, facilitate conducting bulk-bitwise logic operations in-memory (CIM). Efficient mapping of complex applications to these CIM-capable NVMs is non-trivial and can even lead to slowdowns. This paper presents Sherlock, a novel mapping and scheduling method for efficient execution of bulk bitwise operations in NVMs. Sherlock collaboratively optimizes for performance and energy consumption and outperforms the state-of-the-art by 10× and 4.6×, respectively.
- Open Access
- 27 April 2024
- Published by Association for Computing Machinery (ACM)
- p. 164-177
C4CAM: A Compiler for CAM-based In-memory Accelerators
Machine learning and data analytics applications increasingly suffer from the high latency and energy consumption of conventional von Neumann architectures. Recently, several in-memory and near-memory systems have been proposed to overcome this von Neumann bottleneck. Platforms based on content-addressable memories (CAMs) are particularly interesting due to their efficient support for the search-based operations that form the foundation for many applications, including K-nearest neighbors (KNN), high-dimensional computing (HDC), recommender systems, and one-shot learning among others. Today, these platforms are designed by hand and can only be programmed with low-level code, accessible only to hardware experts. In this paper, we introduce C4CAM, the first compiler framework to quickly explore CAM configurations and seamlessly generate code from high-level Torch-Script code. C4CAM employs a hierarchy of abstractions that progressively lowers programs, allowing code transformations at the most suitable abstraction level. Depending on the type and technology, CAM arrays exhibit varying latencies and power profiles. Our framework allows analyzing the impact of such differences in terms of system-level performance and energy consumption, and thus supports designers in selecting appropriate designs for a given application.
- 27 April 2024
- Published by Association for Computing Machinery (ACM)
- p. 164-177
Open AccessC4CAM: A Compiler for CAM-based In-memory Accelerators
Machine learning and data analytics applications increasingly suffer from the high latency and energy consumption of conventional von Neumann architectures. Recently, several in-memory and near-memory systems have been proposed to overcome this von Neumann bottleneck. Platforms based on content-addressable memories (CAMs) are particularly interesting due to their efficient support for the search-based operations that form the foundation for many applications, including K-nearest neighbors (KNN), high-dimensional computing (HDC), recommender systems, and one-shot learning among others. Today, these platforms are designed by hand and can only be programmed with low-level code, accessible only to hardware experts. In this paper, we introduce C4CAM, the first compiler framework to quickly explore CAM configurations and seamlessly generate code from high-level Torch-Script code. C4CAM employs a hierarchy of abstractions that progressively lowers programs, allowing code transformations at the most suitable abstraction level. Depending on the type and technology, CAM arrays exhibit varying latencies and power profiles. Our framework allows analyzing the impact of such differences in terms of system-level performance and energy consumption, and thus supports designers in selecting appropriate designs for a given application.
- Open Access
- 17 September 2023
- Published by Association for Computing Machinery (ACM)
- p. 11-20
Special Session - Non-Volatile Memories: Challenges and Opportunities for Embedded System Architectures with Focus on Machine Learning Applications
This paper explores the challenges and opportunities of integrating non-volatile memories (NVMs) into embedded systems for machine learning. NVMs offer advantages such as increased memory density, lower power consumption, non-volatility, and compute-in-memory capabilities. The paper focuses on integrating NVMs into embedded systems, particularly in intermittent computing, where systems operate during periods of available energy. NVM technologies bring persistence closer to the CPU core, enabling efficient designs for energy-constrained scenarios. Next, computation in resistive NVMs is explored, highlighting its potential for accelerating machine learning algorithms. However, challenges related to reliability and device non-idealities need to be addressed. The paper also discusses memory-centric machine learning, leveraging NVMs to overcome the memory wall challenge. By optimizing memory layouts and utilizing probabilistic decision tree execution and neural network sparsity, NVM-based systems can improve cache behavior and reduce unnecessary computations. In conclusion, the paper emphasizes the need for further research and optimization for the widespread adoption of NVMs in embedded systems presenting relevant challenges, especially for machine learning applications.
- 17 September 2023
- Published by Association for Computing Machinery (ACM)
- p. 11-20
Open AccessSpecial Session - Non-Volatile Memories: Challenges and Opportunities for Embedded System Architectures with Focus on Machine Learning Applications
This paper explores the challenges and opportunities of integrating non-volatile memories (NVMs) into embedded systems for machine learning. NVMs offer advantages such as increased memory density, lower power consumption, non-volatility, and compute-in-memory capabilities. The paper focuses on integrating NVMs into embedded systems, particularly in intermittent computing, where systems operate during periods of available energy. NVM technologies bring persistence closer to the CPU core, enabling efficient designs for energy-constrained scenarios. Next, computation in resistive NVMs is explored, highlighting its potential for accelerating machine learning algorithms. However, challenges related to reliability and device non-idealities need to be addressed. The paper also discusses memory-centric machine learning, leveraging NVMs to overcome the memory wall challenge. By optimizing memory layouts and utilizing probabilistic decision tree execution and neural network sparsity, NVM-based systems can improve cache behavior and reduce unnecessary computations. In conclusion, the paper emphasizes the need for further research and optimization for the widespread adoption of NVMs in embedded systems presenting relevant challenges, especially for machine learning applications.
- 11 June 2023
- Published by Springer Nature
- p. 89-100
Memristor-only LSTM Acceleration with Non-linear Activation Functions
- 11 June 2023
- Published by Springer Nature
- p. 89-100
Memristor-only LSTM Acceleration with Non-linear Activation Functions
- Open Access
- 22 December 2022
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Reconfigurable Technology and Systems
- Vol. 16 (1) , 1-24
Data and Computation Reuse in CNNs Using Memristor TCAMs
Exploiting computational and data reuse in CNNs is crucial for the successful design of resource-constrained platforms. In image recognition applications, high levels of input locality and redundancy present in CNNs have become the golden goose for skipping costly arithmetic operations. One promising technique for this consists in storing function responses of some input patterns into offline lookup tables and replacing online computation with search operations, which are highly efficient when implemented by emerging non-volatile memory technologies. In this work, we rethink both algorithm and architecture for exploiting locality and reuse opportunities by replacing entire convolutions with searches on Content-addressable Memories. By previously calculating convolution results and building compact lookup tables with our novel clustering algorithm, one can evaluate activations at constant time complexity, also requiring a single read operation of the current input tensor. Then, we devise a reconfigurable array of processing elements based on memristive Ternary Content-addressable Memories to efficiently implement the algorithmic solution and meet the flexibility requirements of several CNN architectures. Results show that our design reduces the number of multiplications and memory accesses proportionally to the number of convolutional layer channels. The average performance is 1,172 and 82 FPS for AlexNet and VGG-16 models, thus outperforming state-of-the-art works by 13×.
- 22 December 2022
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Reconfigurable Technology and Systems
- Vol. 16 (1) , 1-24
Open AccessData and Computation Reuse in CNNs Using Memristor TCAMs
Exploiting computational and data reuse in CNNs is crucial for the successful design of resource-constrained platforms. In image recognition applications, high levels of input locality and redundancy present in CNNs have become the golden goose for skipping costly arithmetic operations. One promising technique for this consists in storing function responses of some input patterns into offline lookup tables and replacing online computation with search operations, which are highly efficient when implemented by emerging non-volatile memory technologies. In this work, we rethink both algorithm and architecture for exploiting locality and reuse opportunities by replacing entire convolutions with searches on Content-addressable Memories. By previously calculating convolution results and building compact lookup tables with our novel clustering algorithm, one can evaluate activations at constant time complexity, also requiring a single read operation of the current input tensor. Then, we devise a reconfigurable array of processing elements based on memristive Ternary Content-addressable Memories to efficiently implement the algorithmic solution and meet the flexibility requirements of several CNN architectures. Results show that our design reduces the number of multiplications and memory accesses proportionally to the number of convolutional layer channels. The average performance is 1,172 and 82 FPS for AlexNet and VGG-16 models, thus outperforming state-of-the-art works by 13×.
- Open Access
- 31 December 2021
- Published by Association for Computing Machinery (ACM) in ACM Journal on Emerging Technologies in Computing Systems
- Vol. 18 (2) , 1-22
STAP: An Architecture and Design Tool for Automata Processing on Memristor TCAMs
Accelerating finite-state automata benefits several emerging application domains that are built on pattern matching. In-memory architectures, such as the Automata Processor (AP), are efficient to speed them up, at least for outperforming traditional von-Neumann architectures. In spite of the AP’s massive parallelism, current APs suffer from poor memory density, inefficient routing architectures, and limited capabilities. Although these limitations can be lessened by emerging memory technologies, its architecture is still the major source of huge communication demands and lack of scalability. To address these issues, we present STAP , a Scalable TCAM-based architecture for Automata Processing . STAP adopts a reconfigurable array of processing elements, which are based on memristive Ternary CAMs (TCAMs), to efficiently implement Non-deterministic finite automata (NFAs) through proper encoding and mapping methods. The CAD tool for STAP integrates the design flow of automata applications, a specific mapping algorithm, and place and route tools for connecting processing elements by RRAM-based programmable interconnects. Results showed 1.47× higher throughput when processing 16-bit input symbols, and improvements of 3.9× and 25× on state and routing densities over the state-of-the-art AP, while preserving 10 4 programming cycles.
- 31 December 2021
- Published by Association for Computing Machinery (ACM) in ACM Journal on Emerging Technologies in Computing Systems
- Vol. 18 (2) , 1-22
Open AccessSTAP: An Architecture and Design Tool for Automata Processing on Memristor TCAMs
Accelerating finite-state automata benefits several emerging application domains that are built on pattern matching. In-memory architectures, such as the Automata Processor (AP), are efficient to speed them up, at least for outperforming traditional von-Neumann architectures. In spite of the AP’s massive parallelism, current APs suffer from poor memory density, inefficient routing architectures, and limited capabilities. Although these limitations can be lessened by emerging memory technologies, its architecture is still the major source of huge communication demands and lack of scalability. To address these issues, we present STAP , a Scalable TCAM-based architecture for Automata Processing . STAP adopts a reconfigurable array of processing elements, which are based on memristive Ternary CAMs (TCAMs), to efficiently implement Non-deterministic finite automata (NFAs) through proper encoding and mapping methods. The CAD tool for STAP integrates the design flow of automata applications, a specific mapping algorithm, and place and route tools for connecting processing elements by RRAM-based programmable interconnects. Results showed 1.47× higher throughput when processing 16-bit input symbols, and improvements of 3.9× and 25× on state and routing densities over the state-of-the-art AP, while preserving 10 4 programming cycles.
- 28 January 2021
- Published by Springer Nature in International Journal of Parallel Programming
- Vol. 49 (2) , 237-252
Enabling Near-Data Accelerators Adoption by Through Investigation of Datapath Solutions
- 28 January 2021
- Published by Springer Nature in International Journal of Parallel Programming
- Vol. 49 (2) , 237-252
Enabling Near-Data Accelerators Adoption by Through Investigation of Datapath Solutions