Gerard Allwein

dblp:75/4741 · DBLP profile ↗
← Back
19ranked-venue papers
3as first author
1since 2021 · last 2021
—ORCID · none

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

Software engineering, systems software and programming languages · 8 · 1 since 2021Theory of computation · 6 · 2 first-author · 1 since 2021Systems, architecture and hardware · 5Artificial intelligence and machine learning · 2Security and privacy · 1 · 1 first-author
YearPublicationVenuePosition
2021 A Mechanized Semantic Metalanguage for High Level Synthesis
abstract
High-level synthesis (HLS) seeks to make hardware development more like software development by adapting ideas from programming languages to hardware description and HLS from functional languages is usually motivated as a means of bringing software-like productivity to hardware development. Formalized semantics support a range of important capabilities in software languages (e.g., compositionality, comprehensibility, interoperability, formal methods, and security) that are desirable in hardware languages as well. This paper considers the formalized semantics of the Device Calculus, a typed λ-calculus with operators for constructing Mealy machines that forms a semantic substratum suitable for high-level synthesis and we demonstrate the utility of the Device Calculus as a foundation for formal methods in functional HLS with a case study specifying the semantics of an idealized subset of the FIRRTL language. FIRRTL (“Flexible Internal Representation for RTL”) is an open-source hardware intermediate representation targeted by the Chisel hardware construction language and the semantics we present is also a starting point for exploring formal methods and security within both the Chisel toolchain and any other high-level synthesis flows that target FIRRTL.
William L. Harrison, Chris Hathhorn, Gerard Allwein
PPDP3
2020 Verifiable Security Templates for Hardware
abstract
High-level synthesis (HLS) research generally focuses on transferring "software engineering virtues" (e.g., modularity, abstraction, extensibility, etc.) to hardware development with the ultimate goal of making hardware development as agile as software development. And recent HLS research has focused on transferring ideas and techniques from high assurance software formal methods to hardware development. Just as it has introduced software engineering virtues, we believe HLS can also become a vector for adapting software formal methods to the challenge of high assurance security in hardware. This paper introduces the Device Calculus and its mechanization in the Agda proof checking system. The Device Calculus is a starting point for exploring the formal methods and security of high-level synthesis flows. We illustrate the Device Calculus with a number of examples of formally verifiable security templates-i.e., functions in the Device Calculus that express common security structures at a high-level of abstraction.
William L. Harrison, Gerard Allwein
DATE2
2019 The Mechanized Marriage of Effects and Monads with Applications to High-assurance Hardware
abstract
Constructing high-assurance, secure hardware remains a challenge, because to do so relies on both a verifiable means of hardware description and implementation. However, production hardware description languages (HDL) lack the formal underpinnings required by formal methods in security. Still, there is no such thing as high-assurance systems without high-assurance hardware. We present a core calculus of secure hardware description with its formal semantics, security type system, and mechanization in Coq. This calculus is the core of the functional HDL, ReWire, shown in previous work to have useful applications in reconfigurable computing. This work supports a full-fledged, formal methodology for producing high-assurance hardware.
Thomas N. Reynolds, Adam M. Procter, William L. Harrison, Gerard Allwein
ACM Trans. Embed. Comput. Syst.4
2018 Semantics-Directed Prototyping of Hardware Runtime Monitors
abstract
Building memory protection mechanisms into embedded hardware is attractive because it has the potential to neutralize a host of software-based attacks with relatively small performance overhead. A hardware monitor, being at the lowest level of the system stack, is more difficult to bypass than a software monitor and hardware-based protections are also potentially more fine-grained than is possible in software: an individual instruction executing on a processor may entail multiple memory accesses, all of which may be tracked in hardware. Finally, hardware-based protection can be performed without the necessity of altering application binaries. This article presents a proof-of-concept codesign of a small embedded processor with a hardware monitor protecting against ROP-style code reuse attacks. While the case study is small, it indicates, we argue, an approach to rapid-prototyping runtime monitors in hardware that is quick, flexible, and extensible as well as being amenable to formal verification.
William L. Harrison, Gerard Allwein
RSP2
2017 A core calculus for secure hardware: its formal semantics and proof system
abstract
Constructing high assurance, secure hardware remains a challenge, because to do so relies on both a verifiable means of hardware description and implementation. However, production hardware description languages (HDL) lack the formal underpinnings required by formal methods in security. Still, there is no such thing as high assurance systems without high assurance hardware. We present a core calculus of secure hardware description with its formal semantics, security type system and mechanization in Coq. This calculus is the core of the functional HDL, ReWire, shown in previous work to have useful applications in reconfigurable computing. This work supports a full-fledged, formal methodology for producing high assurance hardware.
Thomas N. Reynolds, Adam M. Procter, William L. Harrison, Gerard Allwein
MEMOCODE4
2017 A Principled Approach to Secure Multi-core Processor Design with ReWire
abstract
There is no such thing as high assurance without high assurance hardware. High assurance hardware is essential because any and all high assurance systems ultimately depend on hardware that conforms to, and does not undermine, critical system properties and invariants. And yet, high assurance hardware development is stymied by the conceptual gap between formal methods and hardware description languages used by engineers. This article advocates a semantics-directed approach to bridge this conceptual gap. We present a case study in the design of secure processors, which are formally derived via principled techniques grounded in functional programming and equational reasoning. The case study comprises the development of secure single- and dual-core variants of a single processor, both based on a common semantic specification of the ISA. We demonstrate via formal equational reasoning that the dual-core processor respects a “no-write-down” information flow policy. The semantics-directed approach enables a modular and extensible style of system design and verification. The secure processors require only a very small amount of additional code to specify and implement, and their security verification arguments are concise and readable. Our approach rests critically on ReWire, a functional programming language providing a suitable foundation for formal verification of hardware designs. This case study demonstrates both ReWire’s expressiveness as a programming language and its power as a framework for formal, high-level reasoning about hardware systems.
Adam M. Procter, William L. Harrison, Ian Graves, Michela Becchi, Gerard Allwein
ACM Trans. Embed. Comput. Syst.5
2016 Model-driven design & synthesis of the SHA-256 cryptographic hash function in rewire
abstract
There are many algorithms whose implementations can benefit both from hardware acceleration and formal verification and we would like to develop high assurance implementations as rapidly as possible. Critical computing infrastructure like cryptographic algorithms are prime candidates both for such acceleration and for formal verification. We show how to derive a verifiable, hardware-accelerated implementation of the SHA-256 cryptographic hash in the ReWire functional hardware description language in which the hardware-software partitioning of the implementation is reflected in the type system itself.
William L. Harrison, Adam M. Procter, Gerard Allwein
RSP3
2015 Provably Correct Development of reconfigurable hardware designs via equational reasoning
abstract
There is a semantic gap between the hardware definition languages used to design and implement hardware and the languages and logics used to formally specify and verify them. Bridging this gap-i.e., constructing formal models from existing hardware artifacts-can be costly, time-consuming, and error prone-and yet utterly necessary if formal verification is to proceed. This work demonstrates that this gap can be collapsed by starting in a pure functional language that is also a hardware description language, and that equational style verifications may be performed directly on the source text of a hardware design, thereby significantly lowering the verification cost for reconfigurable designs. When combined with an efficient compiler, this methodology achieves both good performance and low cost verification.
Ian Graves, Adam M. Procter, William L. Harrison, Gerard Allwein
FPT4
2015 Semantics Driven Hardware Design, Implementation, and Verification with ReWire
abstract
There is no such thing as high assurance without high assurance hardware. High assurance hardware is essential, because any and all high assurance systems ultimately depend on hardware that conforms to, and does not undermine, critical system properties and invariants. And yet, high assurance hardware development is stymied by the conceptual gap between formal methods and hardware description languages used by engineers. This paper presents ReWire, a functional programming language providing a suitable foundation for formal verification of hardware designs, and a compiler for that language that translates high-level, semantics-driven designs directly into working hardware. ReWire's design and implementation are presented, along with a case study in the design of a secure multicore processor, demonstrating both ReWire's expressiveness as a programming language and its power as a framework for formal, high-level reasoning about hardware systems.
Adam M. Procter, William L. Harrison, Ian Graves, Michela Becchi, Gerard Allwein
LCTES5
2013 Semantics-directed machine architecture in ReWire
abstract
The functional programming community has developed a number of powerful abstractions for dealing with diverse programming models in a modular way. Beginning with a core of pure, side effect free computation, modular monadic semantics (MMS) allows designers to construct domain-specific languages by adding layers of semantic features, such as mutable state and I/O, in an a' la carte fashion. In the realm of interpreter and compiler construction, the benefits of this approach are manifold and well explored. This paper advocates bringing the tools of MMS to bear on hardware design and verification. In particular, we shall discuss a prototype compiler called ReWire which translates high-level MMS hardware specifications into working circuits on FPGAs. This enables designers to tackle the complexity of hardware design in a modular way, without compromising efficiency.
Adam M. Procter, William L. Harrison, Ian Graves, Michela Becchi, Gerard Allwein
FPT5
2012 The Confinement Problem in the Presence of Faults
William L. Harrison, Adam M. Procter, Gerard Allwein
ICFEM3
2010 Partially-ordered Modalities
Gerard Allwein, William L. Harrison
Advances in Modal Logic1
2010 Algebraic information theory for binary channels
Keye Martin, Ira S. Moskowitz, Gerard Allwein
Theor. Comput. Sci.3
2008 Asynchronous Exceptions as an Effect
William L. Harrison, Gerard Allwein, Andy Gill, Adam M. Procter
MPC2
2004 Diagrams and Non-monotonicity in Puzzles
Benedek Nagy, Gerard Allwein
Diagrams2
2004 A qualitative framework for Shannon information theories
abstract
This paper presents a new paradigm for information theory which is a synthesis of Barwise-Seligman's qualitative theory and Shannon's quantitative theory. The new paradigm is best viewed as a meta-theory for Shannon information theories and allows different probability theories, and sub-sequently, new Shannon information theories, to work within a common framework. The resulting Shannon theories conform to a qualitative structure and decorate it with measures of information. This approach is useful for analyzing assurance problems where there the analysis must contend with incomplete and even contradictory information. In particular, the mathematical constructs of the theory allow one to use just about any logic which admits a companion measure theory.
Gerard Allwein
NSPW1
2004 Using DAG transformations to verify Euler/Venn homogeneous and Euler/Venn FOL heterogeneous rules of inference
Nik Swoboda, Gerard Allwein
Softw. Syst. Model.2
2002 Modeling Heterogeneous Systems
Nik Swoboda, Gerard Allwein
Diagrams2
1993 Kripke Models for Linear Logic
abstract
Abstract We present a Kripke model for Girard's Linear Logic (without exponentials) in a conservative fashion where the logical functors beyond the basic lattice operations may be added one by one without recourse to such things as negation. You can either have some logical functors or not as you choose. Commutativity and associativity are isolated in such a way that the base Kripke model is a model for noncommutative, nonassociative Linear Logic. We also extend the logic by adding a coimplication operator, similar to Curry's subtraction operator, which is residuated with Linear Logic's cotensor product. And we can add contraction to get nondistributive Relevance Logic. The model rests heavily on Urquhart's representation of nondistributive lattices and also on Dunn's Gaggle Theory. Indeed, the paper may be viewed as an investigation into nondistributive Gaggle Theory restricted to binary operations. The valuations on the Kripke model are three valued: true, false, and indifferent. The lattice representation theorem of Urquhart has the nice feature of yielding Priestley's representation theorem for distributive lattices if the original lattice happens to be distributive. Hence the representation is consistent with Stone's representation of distributive and Boolean lattices, and our semantics is consistent with the Lemmon-Scott representation of modal algebras and the Routley-Meyer semantics for Relevance Logic.
Gerard Allwein, J. Michael Dunn
J. Symb. Log.1