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

Vladimir Kiriansky

dblp:04/4269 · DBLP profile ↗
← Back
7ranked-venue papers
4as first author
0since 2021 · last 2018
—ORCID · none

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

Systems, architecture and hardware · 5 · 3 first-authorArtificial intelligence and machine learning · 1Security and privacy · 1 · 1 first-authorSoftware engineering, systems software and programming languages · 1Databases, data management, data science and information retrieval · 1Applied, interdisciplinary, general and emerging computing · 1

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.

Network and information security
2 papers
Hardware security and side channels · 90% Systems and software security · 10%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Processor architecture and microarchitecture · 100%

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

TopicWeightPapersLastEvidence papers
Hardware security and side channels › side-channel countermeasures
cache partitioning
0.312018
DAWG: A Defense Against Cache Timing Attacks in Speculative Execution Processors · MICRO 2018
Hardware security and side channels › side-channel attack › cache side-channel attacks
cache timing attack
0.312018
DAWG: A Defense Against Cache Timing Attacks in Speculative Execution Processors · MICRO 2018
Hardware security and side channels › microarchitectural attacks › transient execution attack
speculative execution attack
0.312018
DAWG: A Defense Against Cache Timing Attacks in Speculative Execution Processors · MICRO 2018
Processor architecture and microarchitecture
speculative execution
0.112018
DAWG: A Defense Against Cache Timing Attacks in Speculative Execution Processors · MICRO 2018
Systems and software security › exploitation mitigation
code injection prevention
0.012002
Secure Execution via Program Shepherding · USENIX Security Symposium 2002
Systems and software security › memory safety
control-flow integrity
0.012002
Secure Execution via Program Shepherding · USENIX Security Symposium 2002
Systems and software security
exploitation
0.012002
Secure Execution via Program Shepherding · USENIX Security Symposium 2002

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

dynamic binary instrumentation · 0.0
YearPublicationVenuePosition
2018 Cimple: instruction and memory level parallelism: a DSL for uncovering ILP and MLP
abstract
Modern out-of-order processors have increased capacity to exploit instruction level parallelism (ILP) and memory level parallelism (MLP), e.g., by using wide superscalar pipelines and vector execution units, as well as deep buffers for inflight memory requests. These resources, however, often exhibit poor utilization rates on workloads with large working sets, e.g., in-memory databases, key-value stores, and graph analytics, as compilers and hardware struggle to expose ILP and MLP from the instruction stream automatically.
Vladimir Kiriansky, Martin C. Rinard, Saman P. Amarasinghe
PACT1
2018 DAWG: A Defense Against Cache Timing Attacks in Speculative Execution Processors
abstract
Software side channel attacks have become a serious concern with the recent rash of attacks on speculative processor architectures. Most attacks that have been demonstrated exploit the cache tag state as their exfiltration channel. While many existing defense mechanisms that can be implemented solely in software have been proposed, these mechanisms appear to patch specific attacks, and can be circumvented. In this paper, we propose minimal modifications to hardware to defend against a broad class of attacks, including those based on speculation, with the goal of eliminating the entire attack surface associated with the cache state covert channel. We propose DAWG, Dynamically Allocated Way Guard, a generic mechanism for secure way partitioning of set associative structures including memory caches. DAWG endows a set associative structure with a notion of protection domains to provide strong isolation. When applied to a cache, unlike existing quality of service mechanisms such as Intel's Cache Allocation Technology (CAT), DAWG fully isolates hits, misses, and metadata updates across protection domains. We describe how DAWG can be implemented on a processor with minimal modifications to modern operating systems. We describe a non-interference property that is orthogonal to speculative execution and therefore argue that existing attacks such as Spectre Variant 1 and 2 will not work on a system equipped with DAWG. Finally, we evaluate the performance impact of DAWG on the cache subsystem.
Vladimir Kiriansky, Ilia A. Lebedev, Saman P. Amarasinghe, Srini Devadas, Joel S. Emer
MICRO1
2017 Making caches work for graph analytics
abstract
Large-scale applications implemented in today's high performance graph frameworks heavily underutilize modern hardware systems. While many graph frameworks have made substantial progress in optimizing these applications, we show that it is still possible to achieve up to 5× speedups over the fastest frameworks by greatly improving cache utilization. Previous systems have applied out-of-core processing techniques from the memory/disk boundary to the cache/DRAM boundary. However, we find that blindly applying such techniques is ineffective because the much smaller performance gap between cache and DRAM requires new designs for achieving scalable performance and low overhead. We present Cagra, a cache optimized inmemory graph framework. Cagra uses a novel technique, CSR Segmenting, to break the vertices into segments that fit in last level cache, and partitions the graph into subgraphs based on the segments. Random accesses in each subgraph are limited to one segment at a time, eliminating the much slower random accesses to DRAM. The intermediate updates from each subgraph are written into buffers sequentially and later merged using a low overhead parallel cache-aware merge. Cagra achieves speedups of up to 5× for PageRank, Collaborative Filtering, Label Propagation and Betweenness Centrality over the best published results from state-of-the-art graph frameworks, including GraphMat, Ligra and GridGraph.
Yunming Zhang, Vladimir Kiriansky, Charith Mendis, Saman P. Amarasinghe, Matei Zaharia
IEEE BigData2
2016 Optimizing Indirect Memory References with milk
abstract
Modern applications such as graph and data analytics, when operating on real world data, have working sets much larger than cache capacity and are bottlenecked by DRAM. To make matters worse, DRAM bandwidth is increasing much slower than per CPU core count, while DRAM latency has been virtually stagnant. Parallel applications that are bound by memory bandwidth fail to scale, while applications bound by memory latency draw a small fraction of much-needed bandwidth. While expert programmers may be able to tune important applications by hand through heroic effort, traditional compiler cache optimizations have not been sufficiently aggressive to overcome the growing DRAM gap.
Vladimir Kiriansky, Yunming Zhang, Saman P. Amarasinghe
PACT1
2008 Process-shared and persistent code caches
abstract
Software code caches are increasingly being used to amortizethe runtime overhead of tools such as dynamic optimizers, simulators, and instrumentation engines. The additional memory consumed by these caches, along with the data structures used to manage them, limits the scalability of dynamic tool deployment. Inter-process sharing of code caches significantly improves the ability to efficiently apply code caching tools to many processes simultaneously.
Derek Bruening, Vladimir Kiriansky
VEE2
2006 Thread-Shared Software Code Caches
abstract
Software code caches are increasingly being used to amortize the runtime overhead of dynamic optimizers, simulators, emulators, dynamic translators, dynamic compilers, and other tools. Despite the now-wide spread use of code caches, techniques for efficiently sharing them across multiple threads have not been fully explored. Some systems simply do not support threads, while others resort to thread-private code caches. Although thread-private caches are much simpler to manage, synchronize, and provide scratch space for, they simply do not scale when applied to many-threaded programs. Thread-shared code caches are needed to target server applications, which employ hundreds of worker threads all performing similar tasks. Yet, those systems that do share their code caches often have brute-force, inefficient solutions to the challenges of concurrent code cache access: a single global lock on runtime system code and suspension of all threads for any cache management action. This limits the possibilities for cache design and has performance problems with applications that require frequent cache invalidations to maintain cache consistency. In this paper, we discuss the design choices when building thread-shared code caches and enumerate the difficulties of thread-local storage, synchronization, trace building, in-cache lookup tables, and cache eviction. We present efficient solutions to these problems that both scale well and do not require thread suspension. We evaluate our results in DynamoRIO, an industrial-strength dynamic binary translation system, on real-world server applications. On these applications our thread-shared caches use an order of magnitude less memory and improve throughput by up to four times compared to thread-private caches.
Derek Bruening, Vladimir Kiriansky, Timothy Garnett, Sanjeev Banerji
CGO2
2002 Secure Execution via Program Shepherding
Vladimir Kiriansky, Derek Bruening, Saman P. Amarasinghe
USENIX Security Symposium1