Skip to main navigation Skip to search Skip to main content

A Case for Hardware Memoization in Server CPUs

Research output: Contribution to journalArticlepeer-review

Abstract

Server applications exhibit a high degree of code repetition because they handle many similar requests. In turn, repeated execution of the same code, often with identical inputs, highlights an inefficiency in the execution of server software and suggests memoization as a way to improve performance. Memoization has been extensively explored in software, and several hardware- and hardware-assisted memoization schemes have been proposed in the literature. However, these works targeted memoization of mathematical or algorithmic processing, whereas server applications call for a different approach. We observe that the opportunity for memoization in servers arises not from eliminating the repetition of complex computation, but from eliminating the repetition of software orchestration code. This work studies hardware memoization in servers, ultimately focusing on one pattern, instruction sequences starting with indirect jumps. We explore how an out-of-order pipeline can be extended to support memoization of these instruction sequences, demonstrating the potential of hardware memoization for servers. Using 26 applications to make our case (3 CloudSuite workloads and 23 vSwarm serverless functions), we show how targeting just this one pattern of instruction sequences can memoize over 10% (up to 15.6%) of the dynamically executed instructions in these server applications.

Original languageEnglish
Pages (from-to)231-234
Number of pages4
JournalIEEE Computer Architecture Letters
Volume23
Issue number2
DOIs
StatePublished - 2024

Keywords

  • Microarchitecture
  • hardware memoization

Fingerprint

Dive into the research topics of 'A Case for Hardware Memoization in Server CPUs'. Together they form a unique fingerprint.

Cite this