Nirav Dave

dblp:73/5704 · also Nirav H. Dave · DBLP profile ↗
← Back
21ranked-venue papers
7as first author
1since 2021 · last 2023
—ORCID · none

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

Software engineering, systems software and programming languages · 16 · 7 first-authorTheory of computation · 14 · 7 first-authorSystems, architecture and hardware · 4 · 1 since 2021Computer networks · 1Security 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
5 papers
Electronic design automation · 26% Reconfigurable computing and FPGAs · 26% Hardware accelerators and domain-specific architectures · 26%
Theoretical computer science
3 papers
Automated reasoning and model checking · 100%
Software engineering, system software, and programming languages
4 papers
Services computing and microservices · 82% Compilers and program optimization · 18%
Network and information security
1 paper
Systems and software security · 100%

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

TopicWeightPapersLastEvidence papers
Reconfigurable computing and FPGAs
coarse-grained reconfigurable architecture
0.712023
ML-CGRA: An Integrated Compilation Framework to Enable Efficient Machine Learning Acceleration on CGRAs · DAC 2023
Hardware accelerators and domain-specific architectures
machine learning accelerator
0.712023
ML-CGRA: An Integrated Compilation Framework to Enable Efficient Machine Learning Acceleration on CGRAs · DAC 2023
Systems and software security
memory safety
0.212015
CHERI: A Hybrid Capability-System Architecture for Scalable Software Compartmentalization · IEEE Symposium on Security and Privacy 2015
Processor architecture and microarchitecture
capability-based architecture
0.212015
CHERI: A Hybrid Capability-System Architecture for Scalable Software Compartmentalization · IEEE Symposium on Security and Privacy 2015
Electronic design automation › hardware verification and test
hardware verification
0.212015
Modular Deductive Verification of Multiprocessor Hardware Designs · CAV (2) 2015
Processor architecture and microarchitecture › multiprocessor architecture
multiprocessor design
0.212015
Modular Deductive Verification of Multiprocessor Hardware Designs · CAV (2) 2015
Automated reasoning and model checking
compositional verification
0.212015
Modular Deductive Verification of Multiprocessor Hardware Designs · CAV (2) 2015
Automated reasoning and model checking › program verification
deductive verification
0.212015
Modular Deductive Verification of Multiprocessor Hardware Designs · CAV (2) 2015
Services computing and microservices
service orchestration
0.212014
Smten with satisfiability-based search · OOPSLA 2014
Automated reasoning and model checking › satisfiability
SAT/SMT solving
0.212014
Smten with satisfiability-based search · OOPSLA 2014
Automated reasoning and model checking
satisfiability modulo theories
0.212013
Smten: Automatic Translation of High-Level Symbolic Computations into SMT Queries · CAV 2013
Embedded and real-time systems
embedded system design
0.112012
Automatic generation of hardware/software interfaces · ASPLOS 2012
Electronic design automation
hardware/software co-design
0.112012
Automatic generation of hardware/software interfaces · ASPLOS 2012
Electronic design automation › hardware/software co-design
hardware/software partitioning
0.112012
Automatic generation of hardware/software interfaces · ASPLOS 2012
Electronic design automation › hardware verification and test
formal verification
0.112008
Getting Formal Verification into Design Flow · FM 2008
Electronic design automation
hardware verification and test
0.112008
Getting Formal Verification into Design Flow · FM 2008
Compilers and program optimization
code generation
0.012012
Automatic generation of hardware/software interfaces · ASPLOS 2012

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

compiler infrastructure · 0.7MLIR · 0.7compartmentalization · 0.7capability architecture · 0.7modular reasoning · 0.4deductive verification · 0.4SMT · 0.4SAT · 0.4transactor generation · 0.3high-level synthesis · 0.3formal methods · 0.2
YearPublicationVenuePosition
2023 ML-CGRA: An Integrated Compilation Framework to Enable Efficient Machine Learning Acceleration on CGRAs
abstract
Coarse-Grained Reconfigurable Arrays (CGRAs) can achieve higher energy-efficiency than general-purpose processors and accelerators or fine-grained reconfigurable devices, while maintaining adaptability to different computational patterns. CGRAs have shown some success as a platform to accelerate machine learning (ML) thanks to their flexibility, which allows them to support new models not considered by fixed accelerators. However, current solutions for CGRAs employ low level instruction-based compiler approaches and lack specialized compilation infrastructures from high-level ML frameworks that could leverage semantic information from the models, limiting the ability to efficiently map them on the reconfigurable substrate. This paper proposes ML-CGRA, an integrated compilation framework based on the MLIR infrastructure that enables efficient ML acceleration on CGRAs. ML-CGRA provides an end-to-end solution for mapping ML models on CGRAs that outperforms conventional approaches by 3.15× and 6.02 × on 4×4 and 8×8 CGRAs, respectively. The framework is open-source and available from https://github.com/tancheng/mlir-cgra.
Cheng Tan 0002, Nicolas Bohm Agostini, Ang Li 0006, Antonino Tumeo, Nirav Dave, Tong Geng
DAC6
2015 Blueswitch: Enabling Provably Consistent Configuration of Network Switches
abstract
Previous research on consistent updates for distributed network configurations has focused on solutions for centralized networkconfiguration controllers. However, such work does not address the complexity of modern switch datapaths. Modern commodity switches expose opaque configuration mechanisms, with minimal guarantees for datapath consistency and with unclear configuration semantics. Furthermore, would-be solutions for distributed consistent updates must take into account the configuration guarantees provided by each individual switch - plus the compositional problems of distributed control and multi-switch configurations that considerably transcend the single-switch problems. In this paper, we focus on the behavior of individual switches, and demonstrate that even simple rule updates result in inconsistent packet switching in multi-table datapaths. We demonstrate that consistent configuration updates require guarantees of strong switch-level atomicity from both hardware and software layers of switches - even in a single switch. In short, the multiple-switch problems cannot be reasonably approached until single-switch consistency can be resolved. We present a hardware design that supports a transactional configuration mechanism, and provides packet-consistent configuration: all packets traversing the datapath will encounter either the old configuration or the new one, and never an inconsistent mix of the two. Unlike previous work, our design does not require modifications to network packets. We precisely specify the hardwaresoftware protocol for switch configuration; this enables us to prove the correctness of the design, and to provide well-specified invariants that the software driver must maintain for correctness. We implement our prototype switch design using the NetFPGA-10G hardware platform, and evaluate our prototype against commercial off-the-shelf switches.
Jong Hun Han, Prashanth Mundkur, Charalampos Rotsos, Gianni Antichi, Nirav Dave, Andrew W. Moore 0002, Peter G. Neumann
ANCS5
2015 Modular Deductive Verification of Multiprocessor Hardware Designs
Muralidaran Vijayaraghavan, Adam Chlipala, Arvind 0001, Nirav Dave
CAV (2)4
2015 CHERI: A Hybrid Capability-System Architecture for Scalable Software Compartmentalization
abstract
CHERI extends a conventional RISC Instruction-Set Architecture, compiler, and operating system to support fine-grained, capability-based memory protection to mitigate memory-related vulnerabilities in C-language TCBs. We describe how CHERI capabilities can also underpin a hardware-software object-capability model for application compartmentalization that can mitigate broader classes of attack. Prototyped as an extension to the open-source 64-bit BERI RISC FPGA soft-core processor, Free BSD operating system, and LLVM compiler, we demonstrate multiple orders-of-magnitude improvement in scalability, simplified programmability, and resulting tangible security benefits as compared to compartmentalization based on pure Memory-Management Unit (MMU) designs. We evaluate incrementally deployable CHERI-based compartmentalization using several real-world UNIX libraries and applications.
Robert N. M. Watson, Jonathan Woodruff, Peter G. Neumann, Simon W. Moore, Jonathan Anderson, David Chisnall, Nirav Dave, Brooks Davis, Khilan Gudka, Ben Laurie, Steven J. Murdoch, Robert M. Norton, Michael Roe, Stacey D. Son, Munraj Vadera
IEEE Symposium on Security and Privacy7
2014 Smten with satisfiability-based search
abstract
Satisfiability (SAT) and Satisfiability Modulo Theories (SMT) have been used in solving a wide variety of important and challenging problems, including automatic test generation, model checking, and program synthesis. For these applications to scale to larger problem instances, developers cannot rely solely on the sophistication of SAT and SMT solvers to efficiently solve their queries; they must also optimize their own orchestration and construction of queries. We present Smten, a high-level language for orchestrating and constructing satisfiability-based search queries. We show that applications developed using Smten require significantly fewer lines of code and less developer effort to achieve results comparable to standard SMT-based tools.
Richard Uhler, Nirav Dave
OOPSLA2
2013 Smten: Automatic Translation of High-Level Symbolic Computations into SMT Queries
Richard Uhler, Nirav Dave
CAV2
2013 Enabling Hardware Exploration in Software-Defined Networking: A Flexible, Portable OpenFlow Switch
abstract
The OpenFlow framework allows the data plane of a network switch to be managed by a software-based controller. This enables a software-defined networking model in which sophisticated network management policies can be deployed. In this paper, we present an FPGA-based switch which is fully-compliant with OpenFlow 1.0, and meets the 10 Gbps line rate. The switch design is both modular and highly parametrized. It has generic split-transaction interfaces and isolated platform-specific features, making it both flexible for architectural exploration and portable across FPGA platforms. The flow tables in the switch can be implemented on Block RAM or DRAM without any modifications to the rest of the design. The switch has been ported to the NetFPGA-10G, the ML605 and the DE4 boards. It can be integrated with a Desktop PC via either the PCIe or the serial link, and with an FPGA-based MIPS64 softcore as a coprocessor. The latter FPGA-based switch-processor system provides an ideal platform for network research in which both the data plane and the control plane can be explored.
Asif Khan 0005, Nirav Dave
FCCM2
2013 Modular compilation of guarded atomic actions
Muralidaran Vijayaraghavan, Nirav Dave, Arvind 0001
MEMOCODE2
2012 Automatic generation of hardware/software interfaces
abstract
Enabling new applications for mobile devices often requires the use of specialized hardware to reduce power consumption. Because of time-to-market pressure, current design methodologies for embedded applications require an early partitioning of the design, allowing the hardware and software to be developed simultaneously, each adhering to a rigid interface contract. This approach is problematic for two reasons: (1) a detailed hardware-software interface is difficult to specify until one is deep into the design process, and (2) it prevents the later migration of functionality across the interface motivated by efficiency concerns or the addition of features. We address this problem using the Bluespec Codesign Language~(BCL) which permits the designer to specify the hardware-software partition in the source code, allowing the compiler to synthesize efficient software and hardware along with transactors for communication between the partitions. The movement of functionality across the hardware-software boundary is accomplished by simply specifying a new partitioning, and since the compiler automatically generates the desired interface specifications, it eliminates yet another error-prone design task. In this paper we present BCL, an extension of a commercially available hardware design language (Bluespec SystemVerilog), a new software compiling scheme, and preliminary results generated using our compiler for various hardware-software decompositions of an Ogg Vorbis audio decoder, and a ray-tracing application.
Myron King, Nirav Dave, Arvind 0001
ASPLOS2
2011 Verification of microarchitectural refinements in rule-based systems
abstract
Microarchitectural refinements are often required to meet performance, area, or timing constraints when designing complex digital systems. While refinements are often straightforward to implement, it is difficult to formally specify the conditions of correctness for those which change cycle-level timing. As a result, in the later stages of design only those changes are considered that do not affect timing and whose verification can be automated using tools for checking FSM equivalence. This excludes an essential class of microarchitectural changes, such as the insertion of a register in a long combinational path to meet timing. A design methodology based on guarded atomic actions, or rules, offers an opportunity to raise the notion of correctness to a more abstract level. In rule-based systems, many useful refinements can be expressed simply by breaking a single rule into smaller rules which execute the original operation in multiple steps. Since the smaller rule executions can be interleaved with other rules, the verification task is to determine that no new behaviors have been introduced. We formalize this notion of correctness and present a tool based on SMT solvers that can automatically prove that a refinement is correct, or provide concrete information as to why it is not correct. With this tool, a larger class of refinements at all stages of the design process can be verified easily. We demonstrate the use of our tool in proving the correctness of the refinement of a processor pipeline from four stages to five.
Nirav Dave, Michael Katelman, Myron King, Arvind 0001, José Meseguer 0001
MEMOCODE1
2010 A design flow based on modular refinement
abstract
We propose a practical methodology based on modular refinement to design complex systems. The methodology relies on modules with latency-insensitive interfaces so that the refinements can change the timing contract of a module without affecting the overall functional correctness of the system. Such refinements can exacerbate the unit testing problem for modules whose specifications admit a set of output behaviors for the same input (non-determinism), or modules whose input behavior may be affected by past outputs (feedback). We avoid the difficult problem of generating appropriate unit tests for such modules by using system-level tests as unit tests to verify the correctness of refined modules. We illustrate our methodology by showing how one might develop a microprocessor with an in-order pipeline. We then develop a superscalar pipeline using the in-order pipeline as the starting point. Our methodology leverages the effort of design exploration to reduce the effort of specifying interface contracts and unit testing.
Nirav Dave, Man Cheuk Ng, Michael Pellauer, Arvind 0001
MEMOCODE1
2009 Implementing a fast cartesian-polar matrix interpolator
abstract
The 2009 MEMOCODE Hardware/Software Co-Design Contest assignment was the implementation of a cartesian-to-polar matrix interpolator. We discuss our hardware and software design submissions.
Abhinav Agarwal, Nirav Dave, Kermin Fleming, Asif Khan 0005, Myron King, Man Cheuk Ng, Muralidaran Vijayaraghavan
MEMOCODE2
2008 Getting Formal Verification into Design Flow
Arvind 0001, Nirav Dave, Michael Katelman
FM2
2008 H.264 Decoder: A Case Study in Multiple Design Points
abstract
H.264, a state-of-the-art video compression standard, is used across a range of products from cellphones to HDTV. These products have vastly different performance, power and cost requirements, necessitating different hardware-software solutions for H.264 decoding. We show that a design methodology and associated tools which support synthesis from high-level descriptions and which allow modular refinement throughout the design cycle, can share the majority of design effort across multiple design points. Using Bluespec SystemVerilog, we have created a variety of designs for the H.264 decoder tuned to support decoding at resolutions ranging from QCIF video (176 times 144 @ 15 frames/second) to 1080p video ((1280 times 1080)p @60 frames/second) in a 180 nm process. Some of these design points require major transformations of pipelining to increase performance or to reduce area. We also explore several common design issues surrounding memory structures, such as caches and on-chip vs. off-chip memories. We believe the design methodology used in this paper is directly applicable to many IP blocks involving algorithmic specifications. The same design capabilities also permit rapid microarchitecture exploration and changes in RTL late in the design process even in non-algorithmic IP blocks.
Kermin Fleming, Chun-Chieh Lin, Nirav Dave, Arvind 0001, Gopal Raghavan, Jamey Hicks
MEMOCODE3
2007 Scheduling as Rule Composition
abstract
Bluespec is a high-level hardware description language used for architectural exploration, hardware modeling and synthesis of semiconductor chips. In Bluespec, one views hardware as a collection of stateful elements (e.g., registers, memories) and describes its behavior using rules, or Guarded Atomic Actions which modify these elements. All legal behaviors of a Bluespec program can be explained in terms of rules being applied in some sequence. Scheduling is the process of selecting which rules to execute in parallel while maintaining this semantic invariant. The scheduling decision can have a large impact on critical design properties such as pipeline concurrency and clock frequency. What constitutes a good schedule of en depends upon the application and requires the designer's input. In this paper we introduce BTRS, the kernel language for Bluespec and use it to explore the task of scheduling. We view scheduling as the process of restricting a Bluespec design's non-deterministic behavior to be deterministic. We define a small set of scheduling operators whose semantics are expressed in terms of rule composition. We show how to represent the schedules generated by the Bluespec compiler using these compositions. More importantly, our scheduling primitives open a large class of new schedules which are needed for microarchitectural explorations.
Nirav Dave, Arvind 0001, Michael Pellauer
MEMOCODE1
2007 Hardware Acceleration of Matrix Multiplication on a Xilinx FPGA
abstract
The first MEMOCODE hardware/software co-design contest posed the following problem: optimize matrix-matrix multiplication in such a way that it is split between the FPGA and PowerPC on a Xilinx Virtex IIPro30. In this paper we discuss our solution, which we implemented on a Xilinx XUP development board with 256 MB of DRAM. The design was done by the five authors over a span of approximately 3 weeks, though of the 15 possible man-weeks, about 9 were actually spent working on this problem. All hardware design was done using Blue-spec SystemVerilog (BSV), with the exception of an imported Verilog multiplication unit, necessary only due to the limitations of the Xilinx FPGA toolflow optimizations.
Nirav Dave, Kermin Fleming, Myron King, Michael Pellauer, Muralidaran Vijayaraghavan
MEMOCODE1
2007 From WiFi to WiMAX: Techniques for High-Level IP Reuse across Different OFDM Protocols
abstract
Orthogonal frequency-division multiplexing (OFDM) has become the preferred modulation scheme for both broadband and high bitrate digital wireless protocols because of its spectral efficiency and robustness against multipath interference. Although the components and overall structure of different OFDM protocols are functionally similar, the characteristics of the environment for which a wireless protocol is designed often result in different instantiations of various components. In this paper, we describe how we can instantiate baseband processoring of two different wireless protocols, namely 802.11a and 802.16 in Bluespec from a highly parameterized code for a generic OFDM protocol. Our approach results in highly reusable IP blocks that can dramatically reduce the time-to-market of new OFDM protocols. One advantage of Bluespec over SystemC is that our code is synthesizable into high quality hardware, which we demonstrate via synthesis results. Using a Viterbi decoder we also demonstrate how parameterization can be used to study area-performance tradeoff in the implementation of a module. Furthermore, parameterized modules and modular composition can facilitate implementation-grounded algorithmic exploration in the design of new protocols.
Man Cheuk Ng, Muralidaran Vijayaraghavan, Nirav Dave, Arvind 0001, Gopal Raghavan, Jamey Hicks
MEMOCODE3
2006 802.11a transmitter: a case study in microarchitectural exploration
abstract
Hand-held devices have rigid constraints regarding power dissipation and energy consumption. Whether a new functionality can be supported often depends upon its power requirements. Concerns about the area (or cost) are generally addressed after a design can meet the performance and power requirements. Different micro-architectures have very different area, timing and power characteristics, and these need RTL-level models to be evaluated. In this paper we discuss the microarchitectural exploration of an 802.11a transmitter via synthesizable and highly-parameterized descriptions written in Bluespec SystemVerilog (BSV). We also briefly discuss why such architectural exploration would be practically infeasible without appropriate linguistic facilities. No knowledge of 802.11a or BSV is needed to read this paper
Nirav Dave, Michael Pellauer, S. Gerding, Arvind 0001
MEMOCODE1
2005 Automatic synthesis of cache-coherence protocol processors using Bluespec
abstract
There are few published examples of the proof of correctness of a cache-coherence protocol expressed in an HDL. A designer generally shows the correctness of a protocol where many implementation details have been abstracted away. Abstract protocols are often expressed as a table of rules or state transition diagrams with an (implicit) model of atomic actions. There is enough of a semantic gap between these high-level abstract descriptions and HDLs that the task of showing the correctness of an implementation of a verified abstract protocol is as daunting as proving the abstract protocol's correctness in the first place. The main contribution of this paper is to show that this problem can be largely avoided by expressing the verified abstract protocol in Bluespec SystemVerilog (BSV), which is based on guarded atomic actions and is synthesizable into efficient hardware. Consequently, once a protocol has been verified at the rules-level, little verification effort is needed to verify the implementation. We illustrate our approach by synthesizing a non-blocking MSI cache-coherence protocol for distributed memory systems and discuss the performance of the resulting implementation.
Nirav Dave, Man Cheuk Ng, Arvind 0001
MEMOCODE1
2004 High-level synthesis: an essential ingredient for designing complex ASICs
abstract
It is common wisdom that synthesizing hardware from higher-level descriptions than Verilog incurs a performance penalty. The case study here shows that this need not be the case. If the higher-level language has suitable semantics, it is possible to synthesize hardware that is competitive with hand-written Verilog RTL. Differences in the hardware quality are dominated by architecture differences and, therefore, it is more important to explore multiple hardware architectures. This exploration is not practical without quality synthesis from higher-level languages.
Arvind 0001, Rishiyur S. Nikhil, Daniel L. Rosenband, Nirav Dave
ICCAD4
2004 Designing a reorder buffer in Bluespec
abstract
Production capabilities for complex VLSI chips have outpaced the ability of current generation CAD tools to design and verify such chips effectively. Bluespec is designed to synthesize high-level descriptions in the form of guarded atomic actions into high quality structural RTL. While much work has been done on verifying both the correctness and synthesizability of Bluespec descriptions, the work on realistic large scale designs is in early stages. This paper explores the design of the reorder buffer for an out-of-order superscalar processor with a MIPS I ISA. We discuss the design methodologies which are suited for large scale Bluespec design and discuss some of the difficulties we encountered. Even though the work is still in progress, we show what level of performance is achievable under the current Bluespec compiler and what problems need to be solved to make the tool viable for commercial production environments.
Nirav Dave
MEMOCODE1