Results 1 -
3 of
3
On embedding a microarchitectural design language within Haskell
- In Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP ’99
, 1999
"... Based on our experience with modelling and verifying microarchitectural designs within Haskell, this paper examines our use of Haskell as host for an embedded language. In particular, we highlight our use of Haskell's lazy lists, type classes, lazy state monad, and unsafePerformIO, and point to seve ..."
Abstract
-
Cited by 32 (4 self)
- Add to MetaCart
Based on our experience with modelling and verifying microarchitectural designs within Haskell, this paper examines our use of Haskell as host for an embedded language. In particular, we highlight our use of Haskell's lazy lists, type classes, lazy state monad, and unsafePerformIO, and point to several areas where Haskell could be improved in the future. We end with an example of a benefit gained by bringing the functional perspective to microarchitectural modelling.
Recursive Function Definition over Coinductive Types
, 1999
"... Using the notions of unique xed point, converging equivalence relation, and contracting function, we generalize the technique of well-founded recursion. We are able to de ne functions in the Isabelle theorem prover that recursively call themselves an in nite number of times. In particular, we can ea ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Using the notions of unique xed point, converging equivalence relation, and contracting function, we generalize the technique of well-founded recursion. We are able to de ne functions in the Isabelle theorem prover that recursively call themselves an in nite number of times. In particular, we can easily de ne recursive functions that operate over coinductively-de ned types, such as in nite lists. Previously in Isabelle such functions could only be de ned corecursively, or had to operate over types containing \extra" bottom-elements. We conclude the paper by showing that the functions for ltering and attening in nite lists have simple recursive de nitions. 1 Well-founded recursion Rather than specify recursive functions by possibly inconsistent axioms, several higher order logic (HOL) theorem provers[3, 9, 12] provide well-founded recursive function de nition packages, where new functions can be de ned conservatively. Recursive functions are de ned by giving a series of...
A Correctness Proof of a Speculative, Superscalar, Out-of-Order, Renaming Microarchitecture
, 1998
"... Microarchitects are increasingly using techniques such as speculation, register renaming, and superscalar out-of-order execution to make use of instruction-level parallelism. However, the growing complexity of modern microprocessors exacerbates the difficulty of relating them to the simple machines ..."
Abstract
- Add to MetaCart
Microarchitects are increasingly using techniques such as speculation, register renaming, and superscalar out-of-order execution to make use of instruction-level parallelism. However, the growing complexity of modern microprocessors exacerbates the difficulty of relating them to the simple machines that they emulate. Flaws found later in lower-level validation are often microarchitectural in nature. In this paper we provide high-level mathematical specifications for a basic machine and for a speculative, superscalar, out-of-order, renaming machine based on the Intel P6 microarchitecture. We then prove that the visible outputs of the two machines are equivalent.

