Demo Data from SIGIR 2026 / reviewers in the wild / expert
Milo M. K. Martin
dblp:21/3908
· DBLP profile ↗
41ranked-venue papers
7as first author
2since 2021 · last 2022
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 24 · 7 first-authorSoftware engineering, systems software and programming languages · 24 · 3 first-authorTheory of computation · 4Computer networks · 3 · 2 since 2021Security and privacy · 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.
| Computer architecture, parallel and distributed computing, and storage systems
29 papers |
Memory systems · 24% Distributed systems · 21% Cloud and datacenter computing · 12% | |
| Software engineering, system software, and programming languages
11 papers |
Concurrent programming · 43% Programming languages and type systems · 15% Program verification · 13% | |
| Network and information security
5 papers |
Systems and software security · 92% Hardware security and side channels · 8% | |
| Computer networks
1 paper |
Datacenter networks · 100% |
Topics — the 30 heaviest of 82, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Distributed systems
distributed caching |
0.5 | 1 | 2021 | CliqueMap: productionizing an RMA-based distributed caching system · SIGCOMM 2021 |
Distributed systems › distributed communication
remote memory access |
0.5 | 1 | 2021 | CliqueMap: productionizing an RMA-based distributed caching system · SIGCOMM 2021 |
Systems and software security
memory safety |
0.5 | 4 | 2013 | Ironclad C++: a library-augmented type-safe subset of c++ · OOPSLA 2013 Watchdog: Hardware for safe and secure manual memory management and full memory safety · ISCA 2012 SoftBound: highly compatible and complete spatial memory safety for c · PLDI 2009 |
Memory systems
cache coherence |
0.5 | 10 | 2010 | Token tenure and PATCH: A predictive/adaptive token-counting hybrid · ACM Trans. Archit. Code Optim. 2010 Token tenure: PATCHing token counting using directory-based cache coherence · MICRO 2008 Improving Multiple-CMP Systems Using Token Coherence · HPCA 2005 |
Cloud and datacenter computing › multi-tenancy
multi-tenant datacenter |
0.4 | 1 | 2020 | 1RMA: Re-envisioning Remote Memory Access for Multi-tenant Datacenters · SIGCOMM 2020 |
Interconnection networks and networks-on-chip
remote direct memory access |
0.4 | 1 | 2020 | 1RMA: Re-envisioning Remote Memory Access for Multi-tenant Datacenters · SIGCOMM 2020 |
Concurrent programming
memory models |
0.4 | 4 | 2012 | An Axiomatic Memory Model for POWER Multiprocessors · CAV 2012 Generating Litmus Tests for Contrasting Memory Consistency Models · CAV 2010 CheckFence: checking consistency of concurrent data types on relaxed memory models · PLDI 2007 |
Energy-efficient computing › power management › peak power management
computational sprinting |
0.3 | 2 | 2013 | Computational sprinting on a hardware/software testbed · ASPLOS 2013 Computational sprinting · HPCA 2012 |
Energy-efficient computing
thermal management |
0.3 | 2 | 2013 | Computational sprinting on a hardware/software testbed · ASPLOS 2013 Computational sprinting · HPCA 2012 |
Memory systems › memory consistency
memory consistency model |
0.3 | 3 | 2011 | Litmus tests for comparing memory consistency models: how long do they need to be? · DAC 2011 InvisiFence: performance-transparent memory ordering in conventional multiprocessors · ISCA 2009 Correctly implementing value prediction in microprocessors that support multithreading or multiprocessing · MICRO 2001 |
Memory systems › cache coherence
directory-based coherence |
0.2 | 3 | 2010 | Token tenure and PATCH: A predictive/adaptive token-counting hybrid · ACM Trans. Archit. Code Optim. 2010 Token tenure: PATCHing token counting using directory-based cache coherence · MICRO 2008 Bandwidth Adaptive Snooping · HPCA 2002 |
Parallel and multicore computing
transactional memory |
0.2 | 2 | 2010 | RETCON: transactional repair without replay · ISCA 2010 Making the fast case common and the uncommon case simple in unbounded transactional memory · ISCA 2007 |
Systems and software security › memory safety
spatial memory safety |
0.2 | 2 | 2009 | SoftBound: highly compatible and complete spatial memory safety for c · PLDI 2009 Hardbound: architectural support for spatial safety of the C programming language · ASPLOS 2008 |
Program synthesis and code generation › concurrent program synthesis
protocol synthesis |
0.2 | 1 | 2013 | TRANSIT: specifying protocols with concolic snippets · PLDI 2013 |
Programming languages and type systems › type systems
type soundness |
0.2 | 1 | 2013 | Ironclad C++: a library-augmented type-safe subset of c++ · OOPSLA 2013 |
Compilers and program optimization
verified compilation |
0.2 | 1 | 2013 | Formal verification of SSA-based optimizations for LLVM · PLDI 2013 |
Embedded and real-time systems
mobile computing |
0.2 | 1 | 2013 | Computational sprinting on a hardware/software testbed · ASPLOS 2013 |
Cloud and datacenter computing
datacenter services |
0.1 | 1 | 2021 | CliqueMap: productionizing an RMA-based distributed caching system · SIGCOMM 2021 |
Systems and software security › memory safety
hardware-enforced memory safety |
0.1 | 1 | 2012 | Watchdog: Hardware for safe and secure manual memory management and full memory safety · ISCA 2012 |
Systems and software security › memory safety › memory error detection
use-after-free detection |
0.1 | 1 | 2012 | Watchdog: Hardware for safe and secure manual memory management and full memory safety · ISCA 2012 |
Concurrent programming
concurrency bugs |
0.1 | 1 | 2012 | Multicore acceleration of priority-based schedulers for concurrency bug detection · PLDI 2012 |
Concurrent programming › concurrency bug detection
data race detection |
0.1 | 1 | 2012 | Multicore acceleration of priority-based schedulers for concurrency bug detection · PLDI 2012 |
Software testing › concurrency testing
interleaving exploration |
0.1 | 1 | 2012 | Multicore acceleration of priority-based schedulers for concurrency bug detection · PLDI 2012 |
Programming languages and type systems › language semantics › formal semantics
mechanized semantics |
0.1 | 1 | 2012 | Formalizing the LLVM intermediate representation for verified program transformations · POPL 2012 |
Program verification
model checking |
0.1 | 1 | 2012 | Multicore acceleration of priority-based schedulers for concurrency bug detection · PLDI 2012 |
Parallel and multicore computing
memory model |
0.1 | 1 | 2012 | An Axiomatic Memory Model for POWER Multiprocessors · CAV 2012 |
Memory systems › cache management › storage caching
metadata caching |
0.1 | 1 | 2012 | Watchdog: Hardware for safe and secure manual memory management and full memory safety · ISCA 2012 |
Processor architecture and microarchitecture
multicore design |
0.1 | 1 | 2012 | Computational sprinting · HPCA 2012 |
Processor architecture and microarchitecture
speculative execution |
0.1 | 2 | 2009 | InvisiFence: performance-transparent memory ordering in conventional multiprocessors · ISCA 2009 Correctly implementing value prediction in microprocessors that support multithreading or multiprocessing · MICRO 2001 |
Processor architecture and microarchitecture › memory system microarchitecture
store-load forwarding |
0.1 | 2 | 2006 | NoSQ: Store-Load Communication without a Store Queue · MICRO 2006 Scalable Store-Load Forwarding via Store Queue Index Prediction · MICRO 2005 |
Methods — techniques the papers use, named apart from their topics
model checking · 0.6remote procedure call · 0.5remote memory access · 0.5extended finite state machine · 0.5constraint solving · 0.5concolic execution · 0.5micro-ops · 0.3simulation · 0.3proof assistant · 0.2formal verification · 0.2shadow memory · 0.1register renaming · 0.1power budgeting · 0.1phase-change material thermal capacitance · 0.1interactive theorem proving · 0.1coq · 0.1tool-based model comparison · 0.1bounded litmus test exploration · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Aquila: A unified, low-latency fabric for datacenter networks
Dan Gibson, Hema Hariharan, Eric Lance, Moray McLaren, Behnam Montazeri, Hassan M. G. Wassel, Zhehua Wu, Sunghwan Yoo, Raghuraman Balasubramanian, Prashant Chandra, Michael Cutforth, Peter Cuy, David Decotigny, Rakesh Gautam, Alex Iriza, Milo M. K. Martin, Rick Roy, Zuowei Shen, Monica Wong-Chan, Joe Zbiciak, Amin Vahdat |
NSDI | 18 |
| 2021 | CliqueMap: productionizing an RMA-based distributed caching systemabstractDistributed in-memory caching is a key component of modern Internet services. Such caches are often accessed via remote procedure call (RPC), as RPC frameworks provide rich support for productionization, including protocol versioning, memory efficiency, auto-scaling, and hitless upgrades. However, full-featured RPC limits performance and scalability as it incurs high latencies and CPU overheads. Remote Memory Access (RMA) offers a promising alternative, but meeting productionization requirements can be a significant challenge with RMA-based systems due to limited programmability and narrow RMA primitives. Arjun Singhvi, Aditya Akella, Maggie Anderson, Rob Cauble, Harshad Deshmukh, Dan Gibson, Milo M. K. Martin, Amanda Strominger, Thomas F. Wenisch, Amin Vahdat |
SIGCOMM | 7 |
| 2020 | 1RMA: Re-envisioning Remote Memory Access for Multi-tenant DatacentersabstractRemote Direct Memory Access (RDMA) plays a key role in supporting performance-hungry datacenter applications. However, existing RDMA technologies are ill-suited to multi-tenant datacenters, where applications run at massive scales, tenants require isolation and security, and the workload mix changes over time. Our experiences seeking to operationalize RDMA at scale indicate that these ills are rooted in standard RDMA's basic design attributes: connectionorientedness and complex policies baked into hardware. Arjun Singhvi, Aditya Akella, Dan Gibson, Thomas F. Wenisch, Monica Wong-Chan, Sean Clark 0003, Milo M. K. Martin, Moray McLaren, Prashant Chandra, Rob Cauble, Hassan M. G. Wassel, Behnam Montazeri, Simon L. Sabato, Joel Scherpelz, Amin Vahdat |
SIGCOMM | 7 |
| 2014 | WatchdogLite: Hardware-Accelerated Compiler-Based Pointer Checking
Santosh Nagarakatte, Milo M. K. Martin, Steve Zdancewic |
CGO | 2 |
| 2013 | Computational sprinting on a hardware/software testbedabstractCMOS scaling trends have led to an inflection point where thermal constraints (especially in mobile devices that employ only passive cooling) preclude sustained operation of all transistors on a chip --- a phenomenon called "dark silicon." Recent research proposed computational sprinting --- exceeding sustainable thermal limits for short intervals --- to improve responsiveness in light of the bursty computation demands of many media-rich interactive mobile applications. Computational sprinting improves responsiveness by activating reserve cores (parallel sprinting) and/or boosting frequency/voltage (frequency sprinting) to power levels that far exceed the system's sustainable cooling capabilities, relying on thermal capacitance to buffer heat. Arun Raghavan, Laurel Emurian, Marios C. Papaefthymiou, Kevin P. Pipe, Thomas F. Wenisch, Milo M. K. Martin |
ASPLOS | 7 |
| 2013 | Syntax-guided synthesis
Rajeev Alur, Rastislav Bodík, Garvit Juniwal, Milo M. K. Martin, Mukund Raghothaman, Sanjit A. Seshia, Rishabh Singh, Armando Solar-Lezama, Emina Torlak, Abhishek Udupa |
FMCAD | 4 |
| 2013 | Ironclad C++: a library-augmented type-safe subset of c++abstractThe C++ programming language remains widely used, despite inheriting many unsafe features from C---features that often lead to failures of type or memory safety that manifest as buffer overflows, use-after-free vulnerabilities, or abstraction violations. Malicious attackers can exploit such violations to compromise application and system security. Christian DeLozier, Richard A. Eisenberg, Santosh Nagarakatte, Peter-Michael Osera, Milo M. K. Martin, Steve Zdancewic |
OOPSLA | 5 |
| 2013 | TRANSIT: specifying protocols with concolic snippetsabstractWith the maturing of technology for model checking and constraint solving, there is an emerging opportunity to develop programming tools that can transform the way systems are specified. In this paper, we propose a new way to program distributed protocols using concolic snippets. Concolic snippets are sample execution fragments that contain both concrete and symbolic values. The proposed approach allows the programmer to describe the desired system partially using the traditional model of communicating extended finite-state-machines (EFSM), along with high-level invariants and concrete execution fragments. Our synthesis engine completes an EFSM skeleton by inferring guards and updates from the given fragments which is then automatically analyzed using a model checker with respect to the desired invariants. The counterexamples produced by the model checker can then be used by the programmer to add new concrete execution fragments that describe the correct behavior in the specific scenario corresponding to the counterexample. Abhishek Udupa, Arun Raghavan, Jyotirmoy V. Deshmukh, Sela Mador-Haim, Milo M. K. Martin, Rajeev Alur |
PLDI | 5 |
| 2013 | Formal verification of SSA-based optimizations for LLVMabstractModern compilers, such as LLVM and GCC, use a static single assignment(SSA) intermediate representation (IR) to simplify and enable many advanced optimizations. However, formally verifying the correctness of SSA-based optimizations is challenging because SSA properties depend on a function's entire control-flow graph. Jianzhou Zhao, Santosh Nagarakatte, Milo M. K. Martin, Steve Zdancewic |
PLDI | 3 |
| 2012 | An Axiomatic Memory Model for POWER Multiprocessors
Sela Mador-Haim, Luc Maranget, Susmit Sarkar, Kayvan Memarian, Jade Alglave, Scott Owens, Rajeev Alur, Milo M. K. Martin, Peter Sewell, Derek Williams |
CAV | 8 |
| 2012 | Computational sprintingabstractAlthough transistor density continues to increase, voltage scaling has stalled and thus power density is increasing each technology generation. Particularly in mobile devices, which have limited cooling options, these trends lead to a utilization wall in which sustained chip performance is limited primarily by power rather than area. However, many mobile applications do not demand sustained performance; rather they comprise short bursts of computation in response to sporadic user activity. To improve responsiveness for such applications, this paper explores activating otherwise powered-down cores for sub-second bursts of intense parallel computation. The approach exploits the concept of computational sprinting, in which a chip temporarily exceeds its sustainable thermal power budget to provide instantaneous throughput, after which the chip must return to nominal operation to cool down. To demonstrate the feasibility of this approach, we analyze the thermal and electrical characteristics of a smart-phone-like system that nominally operates a single core (~1W peak), but can sprint with up to 16 cores for hundreds of milliseconds. We describe a thermal design that incorporates phase-change materials to provide thermal capacitance to enable such sprints. We analyze image recognition kernels to show that parallel sprinting has the potential to achieve the task response time of a 16W chip within the thermal constraints of a 1W mobile platform. Arun Raghavan, Anuj Chandawalla, Marios C. Papaefthymiou, Kevin P. Pipe, Thomas F. Wenisch, Milo M. K. Martin |
HPCA | 7 |
| 2012 | Watchdog: Hardware for safe and secure manual memory management and full memory safetyabstractLanguages such as C and C++ use unsafe manual memory management, allowing simple bugs (i.e., accesses to an object after deallocation) to become the root cause of exploitable security vulnerabilities. This paper proposes Watchdog, a hardware-based approach for ensuring safe and secure manual memory management. Inspired by prior software-only proposals, Watchdog generates a unique identifier for each memory allocation, associates these identifiers with pointers, and checks to ensure that the identifier is still valid on every memory access. This use of identifiers and checks enables Watchdog to detect errors even in the presence of reallocations. Watchdog stores these pointer identifiers in a disjoint shadow space to provide comprehensive protection and ensure compatibility with existing code. To streamline the implementation and reduce runtime overhead: Watchdog (1) uses micro-ops to access metadata and perform checks, (2) eliminates metadata copies among registers via modified register renaming, and (3) uses a dedicated metadata cache to reduce checking overhead. Furthermore, this paper extends Watchdog's mechanisms to detect bounds errors, thereby providing full hardware-enforced memory safety at low overheads. Santosh Nagarakatte, Milo M. K. Martin, Steve Zdancewic |
ISCA | 2 |
| 2012 | Multicore acceleration of priority-based schedulers for concurrency bug detectionabstractTesting multithreaded programs is difficult as threads can interleave in a nondeterministic fashion. Untested interleavings can cause failures, but testing all interleavings is infeasible. Many interleaving exploration strategies for bug detection have been proposed, but their relative effectiveness and performance remains unclear as they often lack publicly available implementations and have not been evaluated using common benchmarks. We describe NeedlePoint, an open-source framework that allows selection and comparison of a wide range of interleaving exploration policies for bug detection proposed by prior work. Santosh Nagarakatte, Sebastian Burckhardt, Milo M. K. Martin, Madan Musuvathi |
PLDI | 3 |
| 2012 | Formalizing the LLVM intermediate representation for verified program transformationsabstractThis paper presents Vellvm (verified LLVM), a framework for reasoning about programs expressed in LLVM's intermediate representation and transformations that operate on it. Vellvm provides a mechanized formal semantics of LLVM's intermediate representation, its type system, and properties of its SSA form. The framework is built using the Coq interactive theorem prover. It includes multiple operational semantics and proves relations among them to facilitate different reasoning styles and proof techniques. Jianzhou Zhao, Santosh Nagarakatte, Milo M. K. Martin, Steve Zdancewic |
POPL | 3 |
| 2011 | Litmus tests for comparing memory consistency models: how long do they need to be?abstractMemory consistency litmus tests are small parallel programs that are designed to illustrate subtle differences between memory consistency models by exhibiting different outcomes for different models. In this paper, we show that for a class of memory models that is restricted yet expressive enough to include all store-atomic hardware memory models, litmus tests of a bounded size are sufficient for illustrating differences between memory consistency models in this class. We establish a bound of two threads and no more than six memory access instructions for differentiating litmus tests in this class of models. Thus, we can prove equivalence of two specification of memory consistency models in this class by exploring a bounded number of litmus tests. We build a tool for comparing memory models based on this result, and we use the tool to explore and map the space of this class of models. Sela Mador-Haim, Rajeev Alur, Milo M. K. Martin |
DAC | 3 |
| 2010 | Generating Litmus Tests for Contrasting Memory Consistency Models
Sela Mador-Haim, Rajeev Alur, Milo M. K. Martin |
CAV | 3 |
| 2010 | RETCON: transactional repair without replayabstractOver the past decade there has been a surge of academic and industrial interest in optimistic concurrency, i.e. the speculative parallel execution of code regions that have the semantics of isolation. This work analyzes scalability bottlenecks of workloads that use optimistic concurrency. We find that one common bottleneck is updates to auxiliary program data in otherwise non-conflicting operations, e.g. reference count updates and hashtable occupancy field increments. Colin Blundell, Arun Raghavan, Milo M. K. Martin |
ISCA | 3 |
| 2010 | CETS: compiler enforced temporal safety for CabstractTemporal memory safety errors, such as dangling pointer dereferences and double frees, are a prevalent source of software bugs in unmanaged languages such as C. Existing schemes that attempt to retrofit temporal safety for such languages have high runtime overheads and/or are incomplete, thereby limiting their effectiveness as debugging aids. This paper presents CETS, a compile-time transformation for detecting all violations of temporal safety in C programs. Inspired by existing approaches, CETS maintains a unique identifier with each object, associates this metadata with the pointers in a disjoint metadata space to retain memory layout compatibility, and checks that the object is still allocated on pointer dereferences. A formal proof shows that this is sufficient to provide temporal safety even in the presence of arbitrary casts if the program contains no spatial safety violations. Our CETS prototype employs both temporal check removal optimizations and traditional compiler optimizations to achieve a runtime overhead of just 48% on average. When combined with a spatial-checking system, the average overall overhead is 116% for complete memory safety Santosh Nagarakatte, Jianzhou Zhao, Milo M. K. Martin, Steve Zdancewic |
ISMM | 3 |
| 2010 | Overcoming an Untrusted Computing Base: Detecting and Removing Malicious Hardware AutomaticallyabstractThe computer systems security arms race between attackers and defenders has largely taken place in the domain of software systems, but as hardware complexity and design processes have evolved, novel and potent hardware-based security threats are now possible. This paper presents a hybrid hardware/software approach to defending against malicious hardware. We propose BlueChip, a defensive strategy that has both a design-time component and a runtime component. During the design verification phase, BlueChip invokes a new technique, unused circuit identification (UCI), to identify suspicious circuitry-those circuits not used or otherwise activated by any of the design verification tests. BlueChip removes the suspicious circuitry and replaces it with exception generation hardware. The exception handler software is responsible for providing forward progress by emulating the effect of the exception generating instruction in software, effectively providing a detour around suspicious hardware. In our experiments, BlueChip is able to prevent all hardware attacks we evaluate while incurring a small runtime overhead. Matthew Hicks, Murph Finnicum, Samuel T. King, Milo M. K. Martin, Jonathan M. Smith |
IEEE Symposium on Security and Privacy | 4 |
| 2010 | Token tenure and PATCH: A predictive/adaptive token-counting hybridabstractTraditional coherence protocols present a set of difficult trade-offs: the reliance of snoopy protocols on broadcast and ordered interconnects limits their scalability, while directory protocols incur a performance penalty on sharing misses due to indirection. This work introduces Patch (Predictive/Adaptive Token-Counting Hybrid), a coherence protocol that provides the scalability of directory protocols while opportunistically sending direct requests to reduce sharing latency. Patch extends a standard directory protocol to track tokens and use token-counting rules for enforcing coherence permissions. Token counting allows Patch to support direct requests on an unordered interconnect, while a mechanism called token tenure provides broadcast-free forward progress using the directory protocol's per-block point of ordering at the home along with either timeouts at requesters or explicit race notification messages. Patch makes three main contributions. First, Patch introduces token tenure, which provides broadcast-free forward progress for token-counting protocols. Second, Patch deprioritizes best-effort direct requests to match or exceed the performance of directory protocols without restricting scalability. Finally, Patch provides greater scalability than directory protocols when using inexact encodings of sharers because only processors holding tokens need to acknowledge requests. Overall, Patch is a “one-size-fits-all” coherence protocol that dynamically adapts to work well for small systems, large systems, and anywhere in between. Arun Raghavan, Colin Blundell, Milo M. K. Martin |
ACM Trans. Archit. Code Optim. | 3 |
| 2009 | InvisiFence: performance-transparent memory ordering in conventional multiprocessorsabstractA multiprocessor's memory consistency model imposes ordering constraints among loads, stores, atomic operations, and memory fences. Even for consistency models that relax ordering among loads and stores, ordering constraints still induce significant performance penalties due to atomic operations and memory ordering fences. Several prior proposals reduce the performance penalty of strongly ordered models using post-retirement speculation, but these designs either (1) maintain speculative state at a per-store granularity, causing storage requirements to grow proportionally to speculation depth, or (2) employ distributed global commit arbitration using unconventional chunk-based invalidation mechanisms. In this paper we propose InvisiFence, an approach for implementing memory ordering based on post-retirement speculation that avoids these concerns. InvisiFence leverages minimalistic mechanisms for post-retirement speculation proposed in other contexts to (1) track speculative state efficiently at block-granularity with dedicated storage requirements independent of speculation depth, (2) provide fast commit by avoiding explicit commit arbitration, and (3) operate under a conventional invalidation-based cache coherence protocol. InvisiFence supports both modes of operation found in prior work: speculating only when necessary to minimize the risk of rollback-inducing violations or speculating continuously to decouple consistency enforcement from the processor core. Overall, InvisiFence requires approximately one kilobyte of additional state to transform a conventional multiprocessor into one that provides performance-transparent memory ordering, fences, and atomic operations. Colin Blundell, Milo M. K. Martin, Thomas F. Wenisch |
ISCA | 2 |
| 2009 | SoftBound: highly compatible and complete spatial memory safety for cabstractThe serious bugs and security vulnerabilities facilitated by C/C++'s lack of bounds checking are well known, yet C and C++ remain in widespread use. Unfortunately, C's arbitrary pointer arithmetic, conflation of pointers and arrays, and programmer-visible memory layout make retrofitting C/C++ with spatial safety guarantees extremely challenging. Existing approaches suffer from incompleteness, have high runtime overhead, or require non-trivial changes to the C source code. Thus far, these deficiencies have prevented widespread adoption of such techniques. Santosh Nagarakatte, Jianzhou Zhao, Milo M. K. Martin, Steve Zdancewic |
PLDI | 3 |
| 2008 | Hardbound: architectural support for spatial safety of the C programming languageabstractThe C programming language is at least as well known for its absence of spatial memory safety guarantees (i.e., lack of bounds checking) as it is for its high performance. C's unchecked pointer arithmetic and array indexing allow simple programming mistakes to lead to erroneous executions, silent data corruption, and security vulnerabilities. Many prior proposals have tackled enforcing spatial safety in C programs by checking pointer and array accesses. However, existing software-only proposals have significant drawbacks that may prevent wide adoption, including: unacceptably high run-time overheads, lack of completeness, incompatible pointer representations, or need for non-trivial changes to existing C source code and compiler infrastructure. Joseph Devietti, Colin Blundell, Milo M. K. Martin, Steve Zdancewic |
ASPLOS | 3 |
| 2008 | Token tenure: PATCHing token counting using directory-based cache coherenceabstractTraditional coherence protocols present a set of difficult tradeoffs: the reliance of snoopy protocols on broadcast and ordered interconnects limits their scalability, while directory protocols incur a performance penalty on sharing misses due to indirection. This work introduces PATCH (Predictive/Adaptive Token Counting Hybrid), a coherence protocol that provides the scalability of directory protocols while opportunistically sending direct requests to reduce sharing latency. PATCH extends a standard directory protocol to track tokens and use token counting rules for enforcing coherence permissions. Token counting allows PATCH to support direct requests on an unordered interconnect, while a mechanism called token tenure uses local processor timeouts and the directorypsilas per-block point of ordering at the home node to guarantee forward progress without relying on broadcast. PATCH makes three main contributions. First, PATCH introduces token tenure, which provides broadcast-free forward progress for token counting protocols. Second, PATCH deprioritizes best-effort direct requests to match or exceed the performance of directory protocols without restricting scalability. Finally, PATCH provides greater scalability than directory protocols when using inexact encodings of sharers because only processors holding tokens need to acknowledge requests. Overall, PATCH is a ldquoone-size-fits-allrdquo coherence protocol that dynamically adapts to work well for small systems, large systems, and anywhere in between. Arun Raghavan, Colin Blundell, Milo M. K. Martin |
MICRO | 3 |
| 2007 | Making the fast case common and the uncommon case simple in unbounded transactional memoryabstractHardware transactional memory has great potential to simplify the creation ofcorrect and efficient multithreaded programs, allowing programmers to exploitmore effectively the soon-to-be-ubiquitous multi-core designs. Several recentproposals have extended the original bounded transactional memory to unboundedtransactional memory, a crucial step toward transactions becoming ageneral-purpose primitive. Unfortunately, supporting the concurrent executionof an unbounded number of unbounded transactions is challenging, and as aresult, many proposed implementations are complex. Colin Blundell, Joseph Devietti, E. Christopher Lewis, Milo M. K. Martin |
ISCA | 4 |
| 2007 | CheckFence: checking consistency of concurrent data types on relaxed memory modelsabstractConcurrency libraries can facilitate the development of multi-threaded programs by providing concurrent implementations of familiar data types such as queues or sets. There exist many optimized algorithms that can achieve superior performance on multiprocessors by allowing concurrent data accesses without using locks. Unfortunately, such algorithms can harbor subtle concurrency bugs. Moreover, they requirememory ordering fences to function correctly on relaxed memory models. Sebastian Burckhardt, Rajeev Alur, Milo M. K. Martin |
PLDI | 3 |
| 2006 | Bounded Model Checking of Concurrent Data Types on Relaxed Memory Models: A Case Study
Sebastian Burckhardt, Rajeev Alur, Milo M. K. Martin |
CAV | 3 |
| 2006 | NoSQ: Store-Load Communication without a Store QueueabstractThis paper presents NoSQ (short for no store queue), a microarchitecture that performs store-load communication without a store queue and without executing stores in the out-of-order engine. NoSQ implements store-load communication using speculative memory bypassing (SMB), the dynamic short-circuiting of DEF-store-load-USE chains to DEF-USE chains. Whereas previous proposals used SMB as an opportunistic complement to conventional store queue-based forwarding, NoSQ uses SMB as a store queue replacement. NoSQ relies on two supporting mechanisms. The first is an advanced store-load bypassing predictor that for a given dynamic load can predict whether that load will bypass and the identity of the communicating store. The second is an efficient verification mechanism for both bypassed and non-bpyassed loads using in-order load re-execution with an SMB-aware store vulnerability window (SVW) filter. The primary benefit of NoSQ is a simple, fast datapath that does not contain store-load forwarding hardware; all loads get their values either from the data cache or from the register file. Experiments show that this simpler design - despite being more speculative - slightly outperforms a conventional store-queue based design on most benchmarks (by 2% on average) Tingting Sha, Milo M. K. Martin, Amir Roth |
MICRO | 2 |
| 2005 | Improving Multiple-CMP Systems Using Token CoherenceabstractImprovements in semiconductor technology now enable chip multiprocessors (CMPs). As many future computer systems will use one or more CMPs and support shared memory, such systems will have caches that must be kept coherent. Coherence is a particular challenge for multiple-CMP (M-CMP) systems. One approach is to use a hierarchical protocol that explicitly separates the intra-CMP coherence protocol from the inter-CMP protocol, but couples them hierarchically to maintain coherence. However, hierarchical protocols are complex, leading to subtle, difficult-to-verify race conditions. Furthermore, most previous hierarchical protocols use directories at one or both levels, incurring indirections - and thus extra latency - for sharing misses, which are common in commercial workloads. In contrast, this paper exploits the separation of correctness substrate and performance policy in the recently-proposed token coherence protocol to develop the first M-CMP coherence protocol that is flat for correctness, but hierarchical for performance. Via model checking studies, we show that flat correctness eases verification. Via simulation with micro-benchmarks, we make new protocol variants more robust under contention. Finally, via simulation with commercial workloads on a commercial operating system, we show that new protocol variants can be 10-50% faster than a hierarchical directory protocol. Michael R. Marty, Jesse D. Bingham, Mark D. Hill, Alan J. Hu, Milo M. K. Martin, David A. Wood 0001 |
HPCA | 5 |
| 2005 | Formal Verification and its Impact on the Snooping versus Directory Protocol DebateabstractThis invited paper argues that to facilitate formal verification, multiprocessor systems should (1) decouple enforcing coherence from enforcing a memory consistency model and (2) decouple the interconnection network from the cache coherence protocol (by not relying on any specific interconnect ordering or synchronicity properties). Of the two dominant classes of cache coherence protocols - directory protocols and snooping protocols - these two desirable properties favor use of directory protocols over snooping protocols. Although the conceptual simplicity of snooping protocols is seductive, aggressive implementations of snooping protocols lack these decoupling properties, making them perhaps more difficult in practice to reason about, verify, and implement correctly. Conversely, directory protocols may seem more complicated, but they are more amenable to these decoupling properties, which simplify protocol design and verification. Finally, this paper describes the recently-proposed token coherence protocol's adherence to these properties and discusses some of its implications for future multiprocessor systems. Milo M. K. Martin |
ICCD | 1 |
| 2005 | Scalable Store-Load Forwarding via Store Queue Index PredictionabstractConventional processors use a fully-associative store queue (SQ) to implement store-load forwarding. Associative search latency does not scale well to capacities and bandwidths required by wide-issue, large window processors. In this work, we improve SQ scalability by implementing store-load forwarding using speculative indexed access rather than associative search. Our design uses prediction to identify the single SQ entry from which each dynamic load is most likely to forward. When a load executes, it either obtains its value from the predicted SQ entry (if the address of the entry matches the load address) or the data cache (otherwise). A forwarding misprediction - detected by pre-commit filtered load reexecution - results in a pipeline flush. SQ index prediction is generally accurate, but for some loads it cannot reliably identify a single SQ entry. To avoid flushes on these difficult loads while keeping the single-SQ-access-per-load invariant, a second predictor delays difficult loads until all but the youngest of their "candidate" stores have committed. Our predictors are inspired by store-load dependence predictors for load scheduling (Store Sets and the Exclusive Collision Predictor) and unify load scheduling and forwarding. Experiments on the SPEC2000 and MediaBench benchmarks show that on an 8-way issue processor with a 512-entry reorder buffer, our technique performs within 3.3% of an ideal associative SQ (same latency as the data cache) and either matches or exceeds the performance of a realistic associative SQ (slower than data cache) on 31 of 47 programs. Tingting Sha, Milo M. K. Martin, Amir Roth |
MICRO | 2 |
| 2005 | Verifying Safety of a Token Coherence Implementation by Parametric Compositional Refinement
Sebastian Burckhardt, Rajeev Alur, Milo M. K. Martin |
VMCAI | 3 |
| 2004 | Using Speculation to Simplify Multiprocessor DesignabstractSummary form only given. Modern multiprocessors are complex systems that often require years to design and verify. A significant factor is that engineers must allocate a disproportionate share of their effort to ensure that rare corner-case events behave correctly. We propose using "speculation for simplicity " to enable designers to focus on common-case scenarios. Our approach is to speculate that rare events will not occur and rely on an efficient recovery mechanism to undo the effects of misspeculations. We illustrate the potential of speculation to simplify multiprocessor design with three examples. First, we simplify the design of a directory cache coherence protocol by speculatively relying on point-to-point ordering of messages in an adoptively routed interconnection network. Second, we simplify a snooping cache coherence protocol by treating a rare coherence state transition as a misspeculation. Third, we simplify interconnection network design by removing the virtual channels and then recovering from deadlocks when they occur. Experiments with full-system simulation and commercial workloads show that speculation is a viable approach for simplifying system design. Systems can incur as many as ten recoveries per second due to misspeculations without significantly degrading performance, and our speculatively simplified designs incur far fewer recoveries. Daniel J. Sorin, Milo M. K. Martin, Mark D. Hill, David A. Wood 0001 |
IPDPS | 2 |
| 2003 | Using Destination-Set Prediction to Improve the Latency/Bandwidth Tradeoff in Shared-Memory MultiprocessorsabstractDestination-set prediction can improve the latency/bandwidth tradeoff in shared-memory multiprocessors. The destination set is the collection of processors that receive a particular coherence request. Snooping protocols send requests to the maximal destination set (i.e., all processors), reducing latency for cache-to-cache misses at the expense of increased traffic. Directory protocols send requests to the minimal destination set, reducing bandwidth at the expense of an indirection through the directory for cache-to-cache misses. Recently proposed hybrid protocols trade-off latency and bandwidth by directly sending requests to a predicted destination set.This paper explores the destination-set predictor design space, focusing on a collection of important commercial workloads. First, we analyze the sharing behavior of these workloads. Second, we propose predictors that exploit the observed sharing behavior to target different points in the latency/bandwidth tradeoff. Third, we illustrate the effectiveness of destination-set predictors in the context of a multicast snooping protocol. For example, one of our predictors obtains almost 90% of the performance of snooping while using only 15% more bandwidth than a directory protocol (and less than half the bandwidth of snooping). Milo M. K. Martin, Pacia J. Harper, Daniel J. Sorin, Mark D. Hill, David A. Wood 0001 |
ISCA | 1 |
| 2003 | Token Coherence: Decoupling Performance and CorrectnessabstractMany future shared memory multiprocessor servers will both target commercial workloads and use highly integrated "glueless" designs. Implementing low latency cache coherence in these systems is difficult, because traditional approaches either add indirection for common cache to cache misses (directory protocols) or require a totally ordered interconnect (traditional snooping protocols). Unfortunately, totally ordered interconnects are difficult to implement in glueless designs. An ideal coherence protocol would avoid indirections and interconnect ordering; however, such an approach introduces numerous protocol races that are difficult to resolve. We propose a new coherence framework to enable such protocols by separating performance from correctness. A performance protocol can optimize for the common case (i.e., absence of races) and rely on the underlying correctness substrate to resolve races, provide safety, and prevent starvation. We call the combination Token Coherence, since it explicitly exchanges and counts tokens to control coherence permissions. We develop TokenB, a specific Token Coherence performance protocol that allows a glueless multiprocessor to both exploit a low latency unordered interconnect (like directory protocols) and avoid indirection (like snooping protocols). Simulations using commercial workloads show that our new protocol can significantly outperform traditional snooping and directory protocols. Milo M. K. Martin, Mark D. Hill, David A. Wood 0001 |
ISCA | 1 |
| 2002 | Bandwidth Adaptive SnoopingabstractThis paper advocates that cache coherence protocols use a bandwidth adaptive approach to adjust to varied system configurations (e.g., number of processors) and workload behaviors. We propose Bandwidth Adaptive Snooping Hybrid (BASH), a hybrid protocol that ranges from behaving like snooping (by broadcasting requests) when excess bandwidth is available to behaving like a directory protocol (by unicasting requests) when bandwidth is limited. BASH adapts dynamically by probabilistically deciding to broadcast or unicast on a per request basis using a local estimate of recent interconnection network utilization. Simulations of a microbenchmark and commercial and scientific workloads show that BASH robustly performs as well or better than the best of snooping and directory protocols as available bandwidth is varied. By mixing broadcasts and unicasts, BASH outperforms both snooping and directory protocols in the mid-range where a static choice of either is inefficient. Milo M. K. Martin, Daniel J. Sorin, Mark D. Hill, David A. Wood 0001 |
HPCA | 1 |
| 2002 | SafetyNet: Improving the Availability of Shared Memory Multiprocessors with Global Checkpoint/RecoveryabstractWe develop an availability solution, called SafetyNet, that uses a unified, lightweight checkpoint/recovery mechanism to support multiple long-latency fault detection schemes. At an abstract level, SafetyNet logically maintains multiple, globally consistent checkpoints of the state of a shared memory multiprocessor, and it recovers to a pre-fault checkpoint of the system and re-executes if a fault is detected. SafetyNet efficiently coordinates checkpoints across the system in logical time and uses "logically atomic" coherence transactions to free checkpoints of transient coherence state. SafetyNet minimizes performance overhead by pipelining checkpoint validation with subsequent parallel execution. We illustrate SafetyNet avoiding system crashes due to either dropped coherence messages or the loss of an interconnection network switch. Using a full-system simulation of a 16-way multiprocessor running commercial workloads, we find that SafetyNet: 1) adds statistically insignificant runtime overhead in the common-case of fault-free execution, and 2) avoids a crash when tolerated faults occur. Daniel J. Sorin, Milo M. K. Martin, Mark D. Hill, David A. Wood 0001 |
ISCA | 2 |
| 2002 | Specifying and Verifying a Broadcast and a Multicast Snooping Cache Coherence ProtocolabstractWe develop a specification methodology that documents and specifies a cache coherence protocol in eight tables: the states, events, actions, and transitions of the cache and memory controllers. We then use this methodology to specify a detailed, modern three-state broadcast snooping protocol with an unordered data network and an ordered address network that allows arbitrary skew. We also present a detailed specification of a new protocol called multicast snooping (Bilir et al., 1999) and, in doing so, we better illustrate the utility of the table-based specification methodology. Finally, we demonstrate a technique for verification of the multicast snooping protocol, through the sketch of a manual proof that the specification satisfies a sequentially consistent memory model. Daniel J. Sorin, Manoj Plakal, Anne Condon, Mark D. Hill, Milo M. K. Martin, David A. Wood 0001 |
IEEE Trans. Parallel Distributed Syst. | 5 |
| 2001 | Correctly implementing value prediction in microprocessors that support multithreading or multiprocessingabstractThis paper explores the interaction of value prediction with thread-level parallelism techniques, including multithreading and multiprocessing, where correctness is defined by a memory consistency model. Value prediction subtly interacts with the memory consistency model by allowing data dependent instructions to be reordered We find that predicting a value and later verifying that the value eventually calculated is the same as the value predicted is not always sufficient. We present an example of a multithreaded pointer manipulation that can generate a surprising and erroneous result when value prediction is implemented without considering memory consistency correctness. We show that this problem can occur with real software, and we discuss how to apply existing techniques to eliminate the problem in both sequentially consistent systems and systems that obey relaxed memory consistency models. Milo M. K. Martin, Daniel J. Sorin, Harold W. Cain, Mark D. Hill, Mikko H. Lipasti |
MICRO | 1 |
| 2000 | Timestamp snooping: an approach for extending SMPs
Milo M. K. Martin, Daniel J. Sorin, Anastasia Ailamaki, Alaa R. Alameldeen, Ross M. Dickson, Carl J. Mauer, Kevin E. Moore, Manoj Plakal, Mark D. Hill, David A. Wood 0001 |
ASPLOS | 1 |
| 1997 | Exploiting Dead Value InformationabstractWe describe dead value information (DVI) and introduce three new optimizations which exploit it. DVI provides assertions that certain register values are dead, meaning they will not be read before being overwritten. The processor can use DVI to track dead registers and dynamically eliminate unnecessary save and restore instructions from the execution stream at procedure calls and context switches. Our results indicate that dynamic saves and restore instances can be reduced by 46% for procedure calls and by 51% for context switches. In addition, save/restore elimination for procedure calls can improve overall performance by up to 5%. DVI also allows the processor to manage physical registers efficiently, reducing the size requirements of the physical register file. When the system clock rate as proportional to the register file cycle time, this optimization can improve performance. All of these optimizations can be supported with only a few new instructions and minimal additional hardware structures. Milo M. K. Martin, Amir Roth, Charles N. Fischer |
MICRO | 1 |