Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Yoav Etsion

dblp:89/6105 · DBLP profile ↗
← Back
43ranked-venue papers
9as first author
2since 2021 · last 2025
0009-0000-5543-7136ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 34 · 7 first-author · 1 since 2021Software engineering, systems software and programming languages · 12 · 1 first-author · 1 since 2021Computer networks · 2 · 2 first-authorDatabases, data management, data science and information retrieval · 2 · 1 since 2021Security and privacy · 1Graphics, computer vision, multimedia, augmented reality and games · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
20 papers
Memory systems · 26% Cloud and datacenter computing · 22% Processor architecture and microarchitecture · 15%
Databases, data mining, and information retrieval
2 papers
Query processing and optimization · 59% Knowledge graphs · 34% Graph data management · 8%
Network and information security
3 papers
Systems and software security · 72% Hardware security and side channels · 21% Web and mobile security · 6%
Software engineering, system software, and programming languages
7 papers
Operating systems · 57% Programming languages and type systems · 40% Software maintenance and evolution · 2%

Topics — the 30 heaviest of 71, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Cloud and datacenter computing › serverless computing
function-as-a-service
0.912025
Single-Address-Space FaaS with Jord · ISCA 2025
Cloud and datacenter computing
serverless computing
0.912025
Single-Address-Space FaaS with Jord · ISCA 2025
Memory systems
cache
0.832020
A Neural Network Prefetcher for Arbitrary Memory Access Patterns · ACM Trans. Archit. Code Optim. 2020
Loop-Aware Memory Prefetching Using Code Block Working Sets · MICRO 2014
Exploiting Core Working Sets to Filter the L1 Cache with Random Sampling · IEEE Trans. Computers 2012
Cloud and datacenter computing
virtualization
0.622019
Using SMT to accelerate nested virtualization · ISCA 2019
NeSC: Self-virtualizing nested storage controller · MICRO 2016
Knowledge graphs
knowledge graph querying
0.612022
Exploration of Knowledge Graphs via Online Aggregation · ICDE 2022
Query processing and optimization › aggregation
online aggregation
0.612022
Exploration of Knowledge Graphs via Online Aggregation · ICDE 2022
Electronic design automation › hardware verification and test › pattern matching
graph pattern matching
0.412020
The TrieJax Architecture: Accelerating Graph Operations Through Relational Joins · ASPLOS 2020
Hardware accelerators and domain-specific architectures
graph processing accelerator
0.412020
The TrieJax Architecture: Accelerating Graph Operations Through Relational Joins · ASPLOS 2020
Electronic design automation
hardware description language
0.412020
Hardware Description Beyond Register-Transfer Level Languages · FPGA 2020
Memory systems › cache › prefetching
hardware prefetching
0.412020
A Neural Network Prefetcher for Arbitrary Memory Access Patterns · ACM Trans. Archit. Code Optim. 2020
Electronic design automation
high-level synthesis
0.412020
Hardware Description Beyond Register-Transfer Level Languages · FPGA 2020
Memory systems › memory access patterns
irregular memory access
0.412020
A Neural Network Prefetcher for Arbitrary Memory Access Patterns · ACM Trans. Archit. Code Optim. 2020
Memory systems
memory access patterns
0.412020
A Neural Network Prefetcher for Arbitrary Memory Access Patterns · ACM Trans. Archit. Code Optim. 2020
Processor architecture and microarchitecture
dataflow architecture
0.422015
Control flow coalescing on a hybrid dataflow/von Neumann GPGPU · MICRO 2015
Hybrid Dataflow/von-Neumann Architectures · IEEE Trans. Parallel Distributed Syst. 2014
GPUs and heterogeneous computing
GPU architecture
0.422015
Control flow coalescing on a hybrid dataflow/von Neumann GPGPU · MICRO 2015
Single-graph multiple flows: Energy efficient design alternative for GPGPUs · ISCA 2014
Processor architecture and microarchitecture › dataflow architecture
hybrid dataflow/von neumann
0.422015
Control flow coalescing on a hybrid dataflow/von Neumann GPGPU · MICRO 2015
Hybrid Dataflow/von-Neumann Architectures · IEEE Trans. Parallel Distributed Syst. 2014
Memory systems › cache
prefetching
0.422015
Semantic locality and context-based prefetching using reinforcement learning · ISCA 2015
Loop-Aware Memory Prefetching Using Code Block Working Sets · MICRO 2014
Cloud and datacenter computing › virtualization
nested virtualization
0.412019
Using SMT to accelerate nested virtualization · ISCA 2019
Processor architecture and microarchitecture › multithreading
simultaneous multithreading
0.412019
Using SMT to accelerate nested virtualization · ISCA 2019
Systems and software security
information flow control
0.312018
DATS - Data Containers for Web Applications · ASPLOS 2018
Systems and software security › information flow control
noninterference
0.312018
DATS - Data Containers for Web Applications · ASPLOS 2018
Hardware security and side channels
trusted execution environments
0.312018
DATS - Data Containers for Web Applications · ASPLOS 2018
Reconfigurable computing and FPGAs
coarse-grained reconfigurable architecture
0.312018
Inter-Thread Communication in Multithreaded, Reconfigurable Coarse-Grain Arrays · MICRO 2018
GPUs and heterogeneous computing
GPU programming
0.312018
Inter-Thread Communication in Multithreaded, Reconfigurable Coarse-Grain Arrays · MICRO 2018
Parallel and multicore computing › parallel computing › parallel communication
inter-thread communication
0.312018
Inter-Thread Communication in Multithreaded, Reconfigurable Coarse-Grain Arrays · MICRO 2018
Memory systems › memory management › virtual memory
address translation
0.312017
Do-It-Yourself Virtual Memory Translation · ISCA 2017
Memory systems › memory management
virtual memory
0.312017
Do-It-Yourself Virtual Memory Translation · ISCA 2017
Operating systems › resource management › memory management
virtual memory
0.312025
Single-Address-Space FaaS with Jord · ISCA 2025
Storage systems
storage virtualization
0.212016
NeSC: Self-virtualizing nested storage controller · MICRO 2016
GPUs and heterogeneous computing
control flow divergence
0.212015
Control flow coalescing on a hybrid dataflow/von Neumann GPGPU · MICRO 2015

Methods — techniques the papers use, named apart from their topics

user-level memory isolation · 1.7hardware-software co-design · 1.7relational join algorithms · 0.9worst-case optimal join · 0.6random walk · 0.6online aggregation · 0.6CODOMs architecture repurposing · 0.6online training · 0.4neural network · 0.4virtualization · 0.4declassification primitives · 0.3authenticated storage · 0.3SR-IOV · 0.2PCIe virtual device interfaces · 0.2reinforcement learning · 0.2cycle-accurate full-system simulation · 0.2scheduling · 0.1kernel instrumentation · 0.1
YearPublicationVenuePosition
2025 Single-Address-Space FaaS with Jord
abstract
Function-as-a-Service (FaaS) has emerged as a popular cloud paradigm that simplifies software development and deployment by providing scalable and event-driven function execution without the burden of managing servers.FaaS was originally created with a function as a function semantics to enable standalone microservices with adequately short execution time to meet microsecond-scale service-level objectives (SLOs).Unfortunately, today's FaaS systems fundamentally suffer from millisecond-level performance bottlenecks that arise from isolating functions in separate address spaces inside containers or microVMs.Prior work has focused on optimizing FaaS performance, but these systems still fall short of meeting microsecond-level SLOs.In this paper, we present Jord, a FaaS system that revives the original function-as-a-function vision of FaaS.Jord leverages hardware/software co-design to colocate functions in a single address space with user-level in-process memory isolation, extending the capability of traditional virtual memory.By performing memory isolation and management in nanoseconds, Jord enables zero-copy cross-function communication and scalable function dispatch, thereby minimizing FaaS overheads.We demonstrate that Jord can meet microsecond-level SLOs for microservice workloads while performing within 16% of an idealized but insecure baseline and delivering over 2× higher throughput compared to enhanced state-of-the-art systems.
Atri Bhattacharyya, Madhur Kumar, Abhishek Bhattacharjee, Yoav Etsion, Babak Falsafi, Sanidhya Kashyap, Mathias Payer
ISCA5
2022 Exploration of Knowledge Graphs via Online Aggregation
abstract
Exploration systems over large-scale RDF knowl-edge graphs often rely on aggregate count queries to indicate how many results the user can expect for the possible next steps of exploration. Such systems thus encounter a challenging computational problem: evaluating aggregate count queries efficiently enough to allow for interactive exploration. Given that precise results are not always necessary, a promising alternative is to apply online aggregation, where initially imprecise results converge towards more precise results over time. However, state-of-the-art online aggregation algorithms, such as Wander Join, fail to provide accurate results due to frequent rejected paths that slow convergence. We thus devise an algorithm for online aggregation that specializes in exploration queries on knowledge graphs; our proposal leverages the low dimension of RDF graphs, and the low selectivity of exploration queries, by augmenting random walks with exact partial computations using a worst-case optimal join algorithm. This approach reduces the number of rejected paths encountered while retaining a fast sample time. In an experimental study with random interactions exploring two large-scale knowledge graphs, our algorithm shows a clear reduction in error over time versus Wander Join.
Oren Kalinsky, Aidan Hogan, Oren Mishali, Yoav Etsion, Benny Kimelfeld
ICDE4
2020 The TrieJax Architecture: Accelerating Graph Operations Through Relational Joins
abstract
Graph pattern matching (e.g., finding all cycles and cliques) has become an important component in domains such as social networks, biology and cyber-security. In recent years, the database community has shown that graph pattern matching problems can be mapped to an efficient new class of relational join algorithms.
Oren Kalinsky, Benny Kimelfeld, Yoav Etsion
ASPLOS3
2020 LEGaTO: Low-Energy, Secure, and Resilient Toolset for Heterogeneous Computing
abstract
The LEGaTO project leverages task-based programming models to provide a software ecosystem for Made in-Europe heterogeneous hardware composed of CPUs, GPUs, FPGAs and dataflow engines. The aim is to attain one order of magnitude energy savings from the edge to the converged cloud/HPC, balanced with the security and resilience challenges. LEGaTO is an ongoing three-year EU H2020 project started in December 2017.
Behzad Salami 0001, Konstantinos Parasyris, Adrián Cristal, Osman S. Unsal, Xavier Martorell, Raúl de la Cruz, Leonardo Arturo Bautista-Gomez, Daniel A. Jiménez, Carlos Álvarez 0001, Seyed Saber Nabavi Larimi, Sergi Madonar, Miquel Pericàs, Pedro Trancoso, Mustafa Abdul Jabbar, Jing Chen 0038, Pirah Noor Soomro, Madhavan Manivannan, Micha vor dem Berge, Stefan Krupop, Frank Klawonn, Al Mekhlafi, Sigrun May, Tobias Becker, Georgi Gaydadjiev, Hans Salomonsson, Devdatt P. Dubhashi, Oron Port, Yoav Etsion, Do Le Quoc, Christof Fetzer, Martin Kaiser, Nils Kucza, Jens Hagemeyer, René Griessl, Lennart Tigges, Kevin Mika, A. Hüffmeier, Marcelo Pasin, Valerio Schiavoni, Isabelly Rocha, Christian Göttel, Pascal Felber
DATE29
2020 Hardware Description Beyond Register-Transfer Level Languages
abstract
Prevalent hardware description languages (HDLs), e.g., Verilog and VHDL, employ register-transfer level (RTL) as their underlying programming model. One major downside of the RTL model is that it tightly couples design functionality with timing and device constraints. This coupling increases code complexity and yields code that is more verbose and less portable. High-level synthesis (HLS) tools decouple functionality from timing and design constraints by utilizing constructs from imperative programming languages. These constructs and their sequential semantics, however, impede construction of inherently parallel hardware and data scheduling, which is crucial in many design use-cases.
Oron Port, Yoav Etsion
FPGA2
2020 A Neural Network Prefetcher for Arbitrary Memory Access Patterns
abstract
Memory prefetchers are designed to identify and prefetch specific access patterns, including spatiotemporal locality (e.g., strides, streams), recurring patterns (e.g., varying strides, temporal correlation), and specific irregular patterns (e.g., pointer chasing, index dereferencing). However, existing prefetchers can only target premeditated patterns and relations they were designed to handle and are unable to capture access patterns in which they do not specialize. In this article, we propose a context-based neural network (NN) prefetcher that dynamically adapts to arbitrary memory access patterns. Leveraging recent advances in machine learning, the proposed NN prefetcher correlates program and machine contextual information with memory accesses patterns, using online-training to identify and dynamically adapt to unique access patterns exhibited by the code. By targeting semantic locality in this manner, the prefetcher can discern the useful context attributes and learn to predict previously undetected access patterns, even within noisy memory access streams. We further present an architectural implementation of our NN prefetcher, explore its power, energy, and area limitations, and propose several optimizations. We evaluate the neural network prefetcher over SPEC2006, Graph500, and several microbenchmarks and show that the prefetcher can deliver an average speedup of 21.3% for SPEC2006 (up to 2.3×) and up to 4.4× on kernels over a baseline of PC-based stride prefetcher and 30% for SPEC2006 over a baseline with no prefetching.
Leeor Peled, Uri C. Weiser, Yoav Etsion
ACM Trans. Archit. Code Optim.3
2019 Using SMT to accelerate nested virtualization
abstract
IaaS datacenters offer virtual machines (VMs) to their clients, who in turn sometimes deploy their own virtualized environments, thereby running a VM inside a VM. This is known as nested virtualization.
Lluís Vilanova, Nadav Amit, Yoav Etsion
ISCA3
2018 DATS - Data Containers for Web Applications
abstract
Data containers enable users to control access to their data while untrusted applications compute on it. However, they require replicating an application inside each container - compromising functionality, programmability, and performance. We propose DATS - a system to run web applications that retains application usability and efficiency through a mix of hardware capability enhanced containers and the introduction of two new primitives modeled after the popular model-view-controller (MVC) pattern. (1) DATS introduces a templating language to create views that compose data across data containers. (2) DATS uses authenticated storage and confinement to enable an untrusted storage service, such as memcached and deduplication, to operate on plain-text data across containers. These two primitives act as robust declassifiers that allow DATS to enforce non-interference across containers, taking large applications out of the trusted computing base (TCB). We showcase eight different web applications including Gitlab and a Slack-like chat, significantly improve the worst-case overheads due to application replication, and demonstrate usable performance for common-case usage.
Casen Hunger, Lluís Vilanova, Charalampos Papamanthou, Yoav Etsion, Mohit Tiwari
ASPLOS4
2018 LEGaTO: towards energy-efficient, secure, fault-tolerant toolset for heterogeneous computing
abstract
LEGaTO is a three-year EU H2020 project which started in December 2017. The LEGaTO project will leverage task-based programming models to provide a software ecosystem for Made-in-Europe heterogeneous hardware composed of CPUs, GPUs, FPGAs and dataflow engines. The aim is to attain one order of magnitude energy savings from the edge to the converged cloud/HPC.
Adrián Cristal, Osman S. Unsal, Xavier Martorell, Raúl de la Cruz, Leonardo Arturo Bautista-Gomez, Daniel Jiménez-González, Carlos Álvarez 0001, Behzad Salami 0001, Sergi Madonar, Miquel Pericàs, Pedro Trancoso, Micha vor dem Berge, Gunnar Billung-Meyer, Stefan Krupop, Wolfgang Christmann, Frank Klawonn, Amani Mihklafi, Tobias Becker, Georgi Gaydadjiev, Hans Salomonsson, Devdatt P. Dubhashi, Oron Port, Yoav Etsion, Vesna Nowack, Christof Fetzer, Jens Hagemeyer, Thorsten Jungeblut, Nils Kucza, Martin Kaiser, Mario Porrmann, Marcelo Pasin, Valerio Schiavoni, Isabelly Rocha, Christian Göttel, Pascal Felber
CF24
2018 Snapshot-Based Synchronization: A Fast Replacement for Hand-over-Hand Locking
Eran Gilad, Trevor Brown 0001, Mark Oskin, Yoav Etsion
Euro-Par4
2018 Architectural Support for Unlimited Memory Versioning and Renaming
abstract
Data versioning and renaming is a technique to enforce true dependencies and eliminate false dependencies in concurrent out-of-order execution. By extending the addressing to memory to support both a location and a version number, the memory system can match loads with the appropriate stores. With multiple versions of data for a single memory location, Write-after-Read and Write-after-Write dependencies are avoided. In this paper, we present architectural support for O-structures, which provide memory versioning and renaming. We describe a microarchitectural implementation of an O-structure in the cache hierarchy of a multicore processor and demonstrate the need of each feature provided by O-structures. Our evaluation shows that O-structures can be effective in supporting a range of parallel workloads, including irregular, pointer-heavy code.
Eran Gilad, Tehila Mayzels, Elazar Raab, Mark Oskin, Yoav Etsion
IPDPS5
2018 Inter-Thread Communication in Multithreaded, Reconfigurable Coarse-Grain Arrays
abstract
Traditional von Neumann GPGPUs only allow threads to communicate through memory on a group-to-group basis. In this model, a group of producer threads writes intermediate values to memory, which are read by a group of consumer threads after a barrier synchronization. To alleviate the memory bandwidth imposed by this method of communication, GPGPUs provide a small scratchpad memory that prevents intermediate values from overloading DRAM bandwidth. In this paper we introduce direct inter-thread communications for massively multithreaded CGRAs, where intermediate values are communicated directly through the compute fabric on a point-to-point basis. This method avoids the need to write values to memory, eliminates the need for a dedicated scratchpad, and avoids workgroup global barriers. We introduce our proposed extensions to the programming model (CUDA) and execution model, as well as the hardware primitives that facilitate the communication. Our simulations of Rodinia benchmarks running on the new system show that direct inter-thread communication provides an average speedup of 2.8x (10.3x max) and reduces system power by an average of 5x (22x max), when compared to an equivalent Nvidia GPGPU.
Dani Voitsechov, Oron Port, Yoav Etsion
MICRO3
2017 Flexible Caching in Trie Joins
Oren Kalinsky, Yoav Etsion, Benny Kimelfeld
EDBT2
2017 Direct Inter-Process Communication (dIPC): Repurposing the CODOMs Architecture to Accelerate IPC
abstract
In current architectures, page tables are the fundamental mechanism that allows contemporary OSs to isolate user processes, binding each thread to a specific page table. A thread cannot therefore directly call another process's function or access its data; instead, the OS kernel provides data communication primitives and mediates process synchronization through inter-process communication (IPC) channels, which impede system performance.
Lluís Vilanova, Marc Jordà, Nacho Navarro, Yoav Etsion, Mateo Valero
EuroSys4
2017 DFiant: A dataflow hardware description language
abstract
Today's dominant hardware description languages (HDLs), namely Verilog and VHDL, tightly couple design functionality with timing requirements and target device constraints. As hardware designs and device architectures became increasingly more complex, these dominant HDLs yield verbose and unportable code. To raise the level of abstraction, several high-level synthesis (HLS) tools were introduced, usually based on software languages such as C++. Unfortunately, designing with sequential software language constructs comes with a price; the designer loses the ability to control hardware construction and data scheduling, which is crucial in many design use-cases. In this paper, we introduce DFiant, a Scala-based HDL that uses the dataflow model to decouple functionality from implementation constraints. DFiant's frontend enables functional bit-accurate dataflow programming, while maintaining a complete timing-agnostic and device-agnostic code. DFiant bridges the gap between software programming and hardware construction, driving an intuitive functional object oriented code into a highperformance hardware implementation.
Oron Port, Yoav Etsion
FPL2
2017 Do-It-Yourself Virtual Memory Translation
abstract
In this paper, we introduce the Do-It-Yourself virtual memory translation (DVMT) architecture as a flexible complement for current hardware-fixed translation flows. DVMT decouples the virtual-to-physical mapping process from the access permissions, giving applications freedom in choosing mapping schemes, while maintaining security within the operating system. Furthermore, DVMT is designed to support virtualized environments, as a means to collapse the costly, hardware-assisted two-dimensional translations. We describe the architecture in detail and demonstrate its effectiveness by evaluating several different DVMT schemes on a range of virtualized applications with a model based on measurements from a commercial system. We show that different DVMT configurations preserve the native performance, while achieving speedups of 1.2x to 2.0x in virtualized environments.
Hanna Alam, Mattan Erez, Yoav Etsion
ISCA4
2017 Towards a Deterministic Fine-Grained Task Ordering Using Multi-Versioned Memory
abstract
Task-based programming models aim to simplify parallel programming. A runtime system schedules tasks to execute on cores. An essential component of this runtime is to track and manage dependencies between tasks. A typical approach is to rely on programmers to annotate tasks and data structures, essentially manually specifying the input and output of each task. As such, dependencies are associated with named program objects, making this approach problematic for pointer-based data structures. Furthermore, because the runtime system must track these dependencies, for efficient runtime performance the read and write sets should be kept small. We presume a memory system with architecturally visible support for multiple versions of data stored at the same program address. This paper proposes and evaluates a task-based execution model that uses this versioned memory system to deterministically parallelize sequential code. We have built a task-based runtime layer that uses this type of memory system for dependence tracking. We demonstrate the advantages of the proposed model by parallelizing pointer-heavy code, obtaining speedup of up to 19x on a 32-core system.
Eran Gilad, Tehila Mayzels, Elazar Raab, Mark Oskin, Yoav Etsion
SBAC-PAD5
2016 NeSC: Self-virtualizing nested storage controller
abstract
The emergence of high-speed, multi GB/s storage devices has shifted the performance bottleneck of storage virtualization to the software layers of the hypervisor. The hypervisor overheads can be avoided by allowing the virtual machine (VM) to directly access the storage device (a method known as direct device assignment), but this method voids all protection guarantees provided by filesystem permissions, since the device has no notion of client isolation. Recently, following the introduction of 10Gbs and higher networking interfaces, the PCIe specification was extended to include the SR-IOV specification for self-virtualizing devices, which allows a single physical device to present multiple virtual interfaces on the PCIe interconnect. Using SR-IOV, a hypervisor can directly assign a virtual PCIe device interface to each of its VMs. However, as networking interfaces simply multiplex packets sent from/to different clients, the specification does not dictate the semantics of a virtual storage device and how to maintain data isolation in a self-virtualizing device. In this paper we present the self-virtualizing, nested storage controller (NeSC) architecture, which includes a filesystem-agnostic protection mechanism that enables the physical device to export files as virtual PCIe storage devices. The protection mechanism maps file offsets to physical blocks and thereby offloads the hypervisor's storage layer functionality to hardware. Using NeSC, a hypervisor can securely expose its files as virtual PCIe devices and directly assign them to VMs. We have prototyped a 1GB/s NeSC controller using a Virtex-7 FPGA development board connected to the PCIe interconnect. Our evaluation of NeSC on a real system shows that NeSC virtual devices enable VMs to access their data with near-native performance (in terms of both throughput and latency).
Yonatan Gottesman, Yoav Etsion
MICRO2
2015 Semantic locality and context-based prefetching using reinforcement learning
abstract
Most modern memory prefetchers rely on spatio-temporal locality to predict the memory addresses likely to be accessed by a program in the near future. Emerging workloads, however, make increasing use of irregular data structures, and thus exhibit a lower degree of spatial locality. This makes them less amenable to spatio-temporal prefetchers.
Leeor Peled, Shie Mannor, Uri C. Weiser, Yoav Etsion
ISCA4
2015 Control flow coalescing on a hybrid dataflow/von Neumann GPGPU
abstract
We propose the hybrid dataflow/von Neumann vector graph instruction word (VGIW) architecture. This data-parallel architecture concurrently executes each basic block's dataflow graph (graph instruction word) for a vector of threads, and schedules the different basic blocks based on von Neumann control flow semantics. The VGIW processor dynamically coalesces all threads that need to execute a specific basic block into a thread vector and, when the block is scheduled, executes the entire thread vector concurrently. The proposed control flow coalescing model enables the VGIW architecture to overcome the control flow divergence problem, which greatly impedes the performance and power efficiency of data-parallel architectures. Furthermore, using von Neumann control flow semantics enables the VGIW architecture to overcome the limitations of the recently proposed single-graph multiple-flows (SGMF) dataflow GPGPU, which is greatly constrained in the size of the kernels it can execute. Our evaluation shows that VGIW can achieve an average speedup of 3× (up to 11×) over an NVIDIA GPGPU, while providing an average 1.75× better energy efficiency (up to 7×).
Dani Voitsechov, Yoav Etsion
MICRO2
2014 CODOMs: Protecting software with Code-centric memory Domains
abstract
Today's complex software systems are neither secure nor reliable. The rudimentary software protection primitives provided by current hardware forces systems to run many distrusting software components (e.g., procedures, libraries, plugins, modules) in the same protection domain, or otherwise suffer degraded performance from address space switches. We present CODOMs (COde-centric memory DOMains), a novel architecture that can provide finer-grained isolation between software components with effectively zero run-time overhead, all at a fraction of the complexity of other approaches. An implementation of CODOMs in a cycle-accurate full-system x86 simulator demonstrates that with the right hardware support, finer-grained protection and run-time performance can peacefully coexist.
Lluís Vilanova, Muli Ben-Yehuda, Nacho Navarro, Yoav Etsion, Mateo Valero
ISCA4
2014 Single-graph multiple flows: Energy efficient design alternative for GPGPUs
abstract
We present the single-graph multiple-flows (SGMF) architecture that combines coarse-grain reconfigurable computing with dynamic dataflow to deliver massive thread-level parallelism. The CUDA-compatible SGMF architecture is positioned as an energy efficient design alternative for GPGPUs. The architecture maps a compute kernel, represented as a dataflow graph, onto a coarse-grain reconfigurable fabric composed of a grid of interconnected functional units. Each unit dynamically schedules instances of the same static instruction originating from different CUDA threads. The dynamically scheduled functional units enable streaming the data of multiple threads (or graph flows, in SGMF parlance) through the grid. The combination of statically mapped instructions and direct communication between functional units obviate the need for afull instruction pipeline and a centralized register file, whose energy overheads burden GPGPUs. We show that the SGMF architecture delivers performance comparable to that of contemporary GPGPUs while consuming ~57% less energy on average.
Dani Voitsechov, Yoav Etsion
ISCA2
2014 Loop-Aware Memory Prefetching Using Code Block Working Sets
abstract
Memory prefetchers predict streams of memory addresses that are likely to be accessed by recurring invocations of a static instruction. They identify an access pattern and prefetch the data that is expected to be accessed by pending invocations of the said instruction. A stream, or a prefetch context, is thus typically composed of a trigger instruction and an access pattern. Recurring code blocks, such as loop iterations may, however, include multiple memory instructions. Accurate data prefetching for recurring code blocks thus requires tight coordination across multiple prefetch contexts. This paper presents the code block working set (CBWS) prefetcher, which captures the working set of complete loop iterations using a single context. The prefetcher is based on the observation that code block working sets are highly interdependent across tight loop iterations. Using automated annotation of tight loops, the prefetcher tracks and predicts the working sets of complete loop iterations. The proposed CBWS prefetcher is evaluated using a set of benchmarks from the SPEC CPU2006, PARSEC, SPLASH and Parboil suites. Our evaluation shows that the CBWS prefetcher improves the performance of existing prefetchers when dealing with tight loops. For example, we show that the integration of the CBWS prefetcher with the state-of-the-art spatial memory streaming (SMS) prefetcher achieves an average speedup of 1.16× (up to 4× ), compared to the standalone SMS prefetcher.
Adi Fuchs, Shie Mannor, Uri C. Weiser, Yoav Etsion
MICRO4
2014 Hybrid Dataflow/von-Neumann Architectures
abstract
General purpose hybrid dataflow/von-Neumann architectures are gaining attraction as effective parallel platforms. Although different implementations differ in the way they merge the conceptually different computational models, they all follow similar principles: they harness the parallelism and data synchronization inherent to the dataflow model, yet maintain the programmability of the von-Neumann model. In this paper, we classify hybrid dataflow/von-Neumann models according to two different taxonomies: one based on the execution model used for inter- and intrablock execution, and the other based on the integration level of both control and dataflow execution models. The paper reviews the basic concepts of von-Neumann and dataflow computing models, highlights their inherent advantages and limitations, and motivates the exploration of a synergistic hybrid computing model. Finally, we compare a representative set of recent general purpose hybrid dataflow/von-Neumann architectures, discuss their different approaches, and explore the evolution of these hybrid processors.
Fahimeh Yazdanpanah, Carlos Álvarez 0001, Daniel Jiménez-González, Yoav Etsion
IEEE Trans. Parallel Distributed Syst.4
2012 On the simulation of large-scale architectures using multiple application abstraction levels
abstract
Simulation is a key tool for computer architecture research. In particular, cycle-accurate simulators are extremely important for microarchitecture exploration and detailed design decisions, but they are slow and, so, not suitable for simulating large-scale architectures, nor are they meant for this. Moreover, microarchitecture design decisions are irrelevant, or even misleading, for early processor design stages and high-level explorations. This allows one to raise the abstraction level of the simulated architecture, and also the application abstraction level, as it does not necessarily have to be represented as an instruction stream. In this paper we introduce a definition of different application abstraction levels, and how these are employed in TaskSim, a multi-core architecture simulator, to provide several architecture modeling abstractions, and simulate large-scale architectures with hundreds of cores. We compare the simulation speed of these abstraction levels to the ones in existing simulation tools, and also evaluate their utility and accuracy. Our simulations show that a very high-level abstraction, which may be even faster than native execution, is useful for scalability studies on parallel applications; and that just simulating explicit memory transfers, we achieve accurate simulations for architectures using non-coherent scratchpad memories, with just a 25x slowdown compared to native execution. Furthermore, we revisit trace memory simulation techniques, that are more abstract than instruction-by-instruction simulations and provide an 18x simulation speedup.
Alejandro Rico, Felipe Cabarcas, Carlos Villavieja, Milan Pavlovic, Augusto Vega, Yoav Etsion, Alex Ramírez, Mateo Valero
ACM Trans. Archit. Code Optim.6
2012 Exploiting Core Working Sets to Filter the L1 Cache with Random Sampling
abstract
Locality is often characterized by working sets, defined by Denning as the set of distinct addresses referenced within a certain window of time. This definition ignores the fact that dramatic differences exist between the usage patterns of frequently used data and transient data. We therefore propose to extend Denning's definition with that of core working sets, which identify blocks that are used most frequently and for the longest time. The concept of a core motivates the design of dual-cache structures that provide special treatment for the core. In particular, we present a probabilistic locality predictor for L1 caches that leverages the skewed popularity of blocks to distinguish transient cache insertions from more persistent ones. We further present a dual L1 design that inserts only frequently used blocks into a low-latency, low-power, direct-mapped main cache, while serving others from a small fully associative filter. To reduce the prohibitive cost of such a filter, we present a content addressable memory design that eliminates most of the costly lookups using a small auxiliary lookup table. The proposed design enables a 16K direct-mapped L1 cache, augmented with a small 2K filter, to outperform a 32K 4-way cache, while at the same time consumes 70-80 percent less dynamic power and 40 percent less static power.
Yoav Etsion, Dror G. Feitelson
IEEE Trans. Computers1
2011 DiDi: Mitigating the Performance Impact of TLB Shootdowns Using a Shared TLB Directory
abstract
Translation Look aside Buffers (TLBs) are ubiquitously used in modern architectures to cache virtual-to-physical mappings and, as they are looked up on every memory access, are paramount to performance scalability. The emergence of chip-multiprocessors (CMPs) with per-core TLBs, has brought the problem of TLB coherence to front stage. TLBs are kept coherent at the software-level by the operating system (OS). Whenever the OS modifies page permissions in a page table, it must initiate a coherency transaction among TLBs, a process known as a TLB shoot down. Current CMPs rely on the OS to approximate the set of TLBs caching a mapping and synchronize TLBs using costly Inter-Proceessor Interrupts (IPIs) and software handlers. In this paper, we characterize the impact of TLB shoot downs on multiprocessor performance and scalability, and present the design of a scalable TLB coherency mechanism. First, we show that both TLB shoot down cost and frequency increase with the number of processors and project that software-based TLB shoot downs would thwart the performance of large multiprocessors. We then present a scalable architectural mechanism that couples a shared TLB directory with load/store queue support for lightweight TLB invalidation, and thereby eliminates the need for costly IPIs. Finally, we show that the proposed mechanism reduces the fraction of machine cycles wasted on TLB shoot downs by an order of magnitude.
Carlos Villavieja, Vasileios Karakostas, Lluís Vilanova, Yoav Etsion, Alex Ramírez, Avi Mendelson, Nacho Navarro, Adrián Cristal, Osman S. Unsal
PACT4
2011 FELI: HW/SW Support for On-Chip Distributed Shared Memory in Multicores
Carlos Villavieja, Yoav Etsion, Alex Ramírez, Nacho Navarro
Euro-Par (1)2
2011 Trace-driven simulation of multithreaded applications
abstract
Over the past few years, computer architecture research has moved towards execution-driven simulation, due to the inability of traces to capture timing-dependent thread execution interleaving. However, trace-driven simulation has many advantages over execution-driven that are being missed in multithreaded application simulations. We present a methodology to properly simulate multithreaded applications using trace-driven environments. We distinguish the intrinsic application behavior from the computation for managing parallelism. Application traces capture the intrinsic behavior in the sections of code that are independent from the dynamic multithreaded nature, and the points where parallelism-management computation occurs. The simulation framework is composed of a trace-driven simulation engine and a dynamic-behavior component that implements the parallelism-management operations for the application. Then, at simulation time, these operations are reproduced by invoking their implementation in the dynamic-behavior component. The decisions made by these operations are based on the simulated architecture, allowing to dynamically reschedule sections of code taken from the trace to the target simulated components. As the captured sections of code are independent from the parallel state of the application, they can be simulated on the trace-driven engine, while the parallelism-management operations, that require to be re-executed, are carried out by the execution-driven component, thus achieving the best of both trace- and execution-driven worlds. This simulation methodology creates several new research opportunities, including research on scheduling and other parallelism-management techniques for future architectures, and hardware support for programming models.
Alejandro Rico, Alejandro Duran, Felipe Cabarcas, Yoav Etsion, Alex Ramírez, Mateo Valero
ISPASS4
2010 Task Superscalar: An Out-of-Order Task Pipeline
abstract
We present \emph{Task Super scalar}, an abstraction of instruction-level out-of-order pipeline that operates at the task-level. Like ILP pipelines, which uncover parallelism in a sequential instruction stream, task super scalar uncovers task-level parallelism among tasks generated by a sequential thread. Utilizing intuitive programmer annotations of task inputs and outputs, the task super scalar pipeline dynamically detects inter-task data dependencies, identifies task-level parallelism, and executes tasks out-of-order. Furthermore, we propose a design for a distributed task super scalar pipeline front end, that can be embedded into any many core fabric, and manages cores as functional units. We show that our proposed mechanism is capable of driving hundreds of cores simultaneously with non-speculative tasks, which allows our pipeline to sustain work windows consisting of tens of thousands of tasks. We further show that our pipeline can maintain a decode rate faster than 60ns per task and dynamically uncover data dependencies among as many as ~50,000 in-flight tasks, using 7MB of on-chip eDRAM storage. This configuration achieves speedups of 95-255x (average 183x) over sequential execution for nine scientific benchmarks, running on a simulated CMP with 256 cores. Task super scalar thus enables programmers to exploit many core systems effectively, while simultaneously simplifying their programming model.
Yoav Etsion, Felipe Cabarcas, Alejandro Rico, Alex Ramírez, Rosa M. Badia, Eduard Ayguadé, Jesús Labarta, Mateo Valero
MICRO1
2010 Design and implementation of a generic resource sharing virtual time dispatcher
abstract
Virtual machine monitors, especially when used for server consolidation, need to enforce a predefined sharing of resources among the running virtual machines. We propose a new mechanism for doing so that provides improved pacing in the face of heterogeneous allocations and priorities. This mechanism lends from token-bucket metering and from virtual-time scheduling, and prioritizes the different clients based on the divergence between their desired allocations and the actual consumptions. The ideas are demonstrated by implementations for the CPU and networking subsystems of the Linux kernel. Notably, both use exactly the same basic module; future plans include using it for disk I/O as well.
Tal Ben-Nun, Yoav Etsion, Dror G. Feitelson
SYSTOR2
2009 A global scheduling framework for virtualization environments
abstract
A premier goal of resource allocators in virtualization environments is to control the relative resource consumption of the different virtual machines, and moreover, to be able to change the relative allocations at will. However, it is not clear what it means to provide a certain fraction of the machine when multiple resources are involved. We suggest that a promising interpretation is to identify the system bottleneck at each instant, and to enforce the desired allocation on that device. This in turn induces an efficient allocation of the other devices.
Yoav Etsion, Tal Ben-Nun, Dror G. Feitelson
IPDPS1
2007 L1 Cache Filtering Through Random Selection of Memory References
Yoav Etsion, Dror G. Feitelson
PACT1
2007 Fine grained kernel logging with KLogger: experience and insights
abstract
Understanding the detailed behavior of an operating system is crucial for making informed design decisions. But such an understanding is very hard to achieve, due to the increasing complexity of such systems and the fact that they are implemented and maintained by large and diverse groups of developers. Tools like KLogger --- presented in this paper --- can help by enabling fine-grained logging of system events and the sharing of a logging infrastructure between multiple developers and researchers, facilitating a methodology where design evaluation can be an integral part of kernel development. We demonstrate the need for such methodology by a host of case studies, using KLogger to better understand various subsystems in the Linux kernel, and pinpointing overheads and problems therein.
Yoav Etsion, Dan Tsafrir, Scott Kirkpatrick, Dror G. Feitelson
EuroSys1
2007 Secretly Monopolizing the CPU Without Superuser Privileges
Dan Tsafrir, Yoav Etsion, Dror G. Feitelson
USENIX Security Symposium2
2007 Fine-grain analysis of common coupling and its application to a Linux case study
Dror G. Feitelson, Tokunbo O. S. Adeshiyan, Daniel Balasubramanian, Yoav Etsion, Gabor Madl, Esteban Osses, Sameer Singh 0001, Karlkim Suwanmongkol, Minhui Xie, Stephen R. Schach
J. Syst. Softw.4
2007 Backfilling Using System-Generated Predictions Rather than User Runtime Estimates
abstract
The most commonly used scheduling algorithm for parallel supercomputers is FCFS with backfilling, as originally introduced in the EASY scheduler. Backfilling means that short jobs are allowed to run ahead of their time provided they do not delay previously queued jobs (or at least the first queued job). However, predictions have not been incorporated into production schedulers, partially due to a misconception (that we resolve) claiming inaccuracy actually improves performance, but mainly because underprediction is technically unacceptable: users will not tolerate jobs being killed just because system predictions were too short. We solve this problem by divorcing kill-time from the runtime prediction and correcting predictions adaptively as needed if they are proved wrong. The end result is a surprisingly simple scheduler, which requires minimal deviations from current practices (e.g., using FCFS as the basis) and behaves exactly like EASY as far as users are concerned; nevertheless, it achieves significant improvements in performance, predictability, and accuracy. Notably, this is based on a very simple runtime predictor that just averages the runtimes of the last two jobs by the same user; counter intuitively, our results indicate that using recent data is more important than mining the history for similar jobs. All the techniques suggested in this paper can be used to enhance any backfilling algorithm and are not limited to EASY
Dan Tsafrir, Yoav Etsion, Dror G. Feitelson
IEEE Trans. Parallel Distributed Syst.2
2006 Process prioritization using output production: Scheduling for multimedia
abstract
Desktop operating systems such as Windows and Linux base scheduling decisions on CPU consumption; processes that consume fewer CPU cycles are prioritized, assuming that interactive processes gain from this since they spend most of their time waiting for user input. However, this doesn't work for modern multimedia applications which require significant CPU resources. We therefore suggest a new metric to identify interactive processes by explicitly measuring interactions with the user, and we use it to design and implement a process scheduler. Measurements using a variety of applications indicate that this scheduler is very effective in distinguishing between competing interactive and noninteractive processes.
Yoav Etsion, Dan Tsafrir, Dror G. Feitelson
ACM Trans. Multim. Comput. Commun. Appl.1
2005 System noise, OS clock ticks, and fine-grained parallel applications
abstract
As parallel jobs get bigger in size and finer in granularity, "system noise" is increasingly becoming a problem. In fact, fine-grained jobs on clusters with thousands of SMP nodes run faster if a processor is intentionally left idle (per node), thus enabling a separation of "system noise" from the computation. Paying a cost in average processing speed at a node for the sake of eliminating occasional processes delays is (unfortunately) beneficial, as such delays are enormously magnified when one late process holds up thousands of peers with which it synchronizes.We provide a probabilistic argument showing that, under certain conditions, the effect of such noise is linearly proportional to the size of the cluster (as is often empirically observed). We then identify a major source of noise to be indirect overhead of periodic OS clock interrupts ("ticks"), that are used by all general-purpose OSs as a means of maintaining control. This is shown for various grain sizes, platforms, tick frequencies, and OSs. To eliminate such noise, we suggest replacing ticks with an alternative mechanism we call "smart timers". This turns out to also be in line with needs of desktop and mobile computing, increasing the chances of the suggested change to be accepted.
Dan Tsafrir, Yoav Etsion, Dror G. Feitelson, Scott Kirkpatrick
ICS2
2005 Modeling User Runtime Estimates
Dan Tsafrir, Yoav Etsion, Dror G. Feitelson
JSSPP2
2004 Desktop scheduling: how can we know what the user wants?
abstract
Current desktop operating systems use CPU utilization (or lack thereof) to prioritize processes for scheduling. This was thought to be beneficial for interactive processes, under the assumption that they spend much of their time waiting for user input. This reasoning fails for modern multimedia applications. For example, playing a movie in parallel with a heavy background job usually leads to poor graphical results, as these jobs are indistinguishable in terms of CPU usage. Suggested solutions involve shifting the burden to the user or programmer, which we claim is unsatisfactory; instead, we seek an automatic solution. Our attempts using new metrics based on CPU usage failed. We therefore propose and implement a novel scheme of identifying interactive and multimedia applications by directly quantifying the I/O between an application and the user (keyboard, mouse, and screen activity). Preliminary results indicate that prioritizing processes according to this metric indeed solves the aforementioned problem, demonstrating that operating systems can indeed provide better support for multimedia and interactive applications. Additionally, once user I/O data is available, it opens intriguing new possibilities to system designers.
Yoav Etsion, Dan Tsafrir, Dror G. Feitelson
NOSSDAV1
2003 Effects of clock resolution on the scheduling of interactive and soft real-time processes
abstract
It is commonly agreed that scheduling mechanisms in general purpose operating systems do not provide adequate support for modern interactive applications, notably multimedia applications. The common solution to this problem is to devise specialized scheduling mechanisms that take the speci c needs of such applications into account. A much simpler alternative is to better tune existing systems. In particular, we show that conventional scheduling algorithms typically only have little and possibly misleading information regarding the CPU usage of processes, because increasing CPU rates have caused the common 100 Hz clock interrupt rate to be coarser than most application time quanta. We therefore conduct an experimental analysis of what happens if this rate is signi cantly increased. Results indicate that much higher clock interrupt rates are possible with acceptable overheads, and lead to much better information. In addition we show that increasing the clock rate can provide a measure of support for soft real-time requirements, even when using a general-purpose operating system. For example, we achieve a sub-millisecond latency under heavily loaded conditions.
Yoav Etsion, Dan Tsafrir, Dror G. Feitelson
SIGMETRICS1
2001 User-Level Communication in a System with Gang Scheduling
abstract
One of the scarce resources that limits communication performance is buffer space on the network interface card. This becomes even worse when it is partitioned among several time-sliced processes. However, if gang scheduling is used, it is possible to swap buffer contents as part of the context switch, giving each job the full buffer space for the duration of its quantum. This does not suffer undue overhead, as the buffer space is mainly used to allow a larger flow-control window, and typically does not contain many packets that need to be stored.
Yoav Etsion, Dror G. Feitelson
IPDPS1