| Byron Cook, John Launchbury, and John Matthews, "Specifying superscalar microprocessors in Hawk", 1998. |
....of memory accesses. Stream processing can also capture some of the compositional aspect of hardware, allowing stream processing functions to be composed in series and so on. 2 Related work The approach taken here is distinct from languages such as HML [7] Lava [3] muFP [13] Ruby [6] and Hawk [5], which embed a structural hardware language within a functional framework. In such languages, a program is generally executed to generate a structural netlist, whereas SAFLlike languages are behavioural descriptions that could be directly interpreted as a standard functional language, as well ....
Byron Cook, John Launchbury, and John Matthews. Specifying superscalar microprocessors in Hawk. In In Workshop on Formal Techniques for Hardware, 1998.
....hardware description languages within a functional setting, rather than compiling an actual functional description. The functional parts of these languages are often used for macro generation of the hardware netlists. Similar approaches are seen in other languages like muFP [21] Ruby [5] and Hawk [4]. Lucid [1] is a language that takes a stream like approach, intended for use as a formal system. The primitives first and next describe streams, and loops are described using streams from which a particular value can be extracted using the as soon as primitive. This concept is used by ....
B. Cook, J. Launchbury, and J. Matthews. Specifying superscalar microprocessors in Hawk. In In Workshop on Formal Techniques for Hardware, 1998.
....us to teach the course using a real implementation, while at the same time not wasting much time on the actual implementation itself. Functional programming has already been established as a useful teaching aid for teaching structural hardware design and structural synchronous hardware simulation [3, 6, 10, 9]. When performing structural hardware design, it can be tedious to build up components by reducing the problem structurally into a number of smaller problems. The main advantage gained when having a hardware design language as part of a programming language is that the programming language can be ....
Byron Cook, John Launchbury, and John Matthews. Specifying superscalar microprocessors in Hawk. In Formal Techniques for Hardware and Hardware-like Systems. Marstrand, Sweden, 1998.
....us to teach the course using a real implementation, while at the same time not wasting much time on the actual implementation itself. Functional programming has already been established as a useful teaching aid for teaching structural hardware design and structural synchronous hardware simulation [3, 6, 10, 9]. When performing structural hardware design, it can be tedious to build up components by reducing the problem structurally into a number of smaller problems. The main advantage gained when having a hardware design language as part of a programming language is that the programming language can be ....
Byron Cook, John Launchbury, and John Matthews. Specifying superscalar microprocessors in Hawk. In Formal Techniques for Hardware and Hardware-like Systems. Marstrand, Sweden, 1998.
....design, this analysis can be considered too restrictive. Circuits with cycles can be causal, as shown in [11] The Esterel compiler has a causality analysis[16] aimed at accepting such cyclic programs. Other languages for hardware design, this time using Haskell streams, are Lava[17] and Hawk[4]) It should be noted that their use of streams conforms to the synchronous hypothesis, and that, on the other hand, compilation to hardware has a di erent set of requirements than compilation to software. Compilation to hardware is usually not modular so it is less annoying if an analysis isn t ....
B. Cook, J. Launchbury, and J. Matthews. Specifying superscalar microprocessors in Hawk. In
....we again had two options: to make a Haskell variant and write specialised tools (compilers, synthesis engines and so on) to process it, or to make use of existing Haskell compilers by embedding a hardware description language in Haskell. Launchbury and his group are investigating the first option [24]. We chose the second. 2.2 Overview of the System This section presents the types and abstractions used in the Lava system. 2.2.1 Monads Dealing with an embedded language in a functional language requires a significant amount of information plumbing. A good way to hide this is to use monads ....
....used to generate formulas from circuit descriptions, for input to theorem provers, although the idea of having multiple interpretations has been a recurring theme in O Donnell s work. Launchbury and his group are experimenting with a different approach to using Haskell for hardware description [24]. In Hawk, a type of signals and Lustrelike functions to manipulate it are provided. Circuits are modelled as functions on signals, and the lazy state monad is used locally to express sequencing and mutable state. The main application so far has been to give clear and concise specifications of ....
B. Cook, J. Launchbury, and J. Matthews. Specifying superscalar microprocessors in Hawk. In Formal Techniques for Hardware and Hardware-like Systems. Marstrand, Sweden, 1998.
....functions from streams of inputs to streams of outputs. The description is realised using an embedded language in the pure functional language Haskell. There are good motivations in literature for being able to use higher order functions, polymorphism and laziness to describe hardware [She85,O D96,CLM98,BCSS98] Describing Circuits The approach of modelling circuits as functions on streams was taken as early as in the days of FP [She85] and later modernised in systems like Hydra [O D96] and Hawk [CLM98] The following introduction to functional circuit description owes much to the description ....
.... to use higher order functions, polymorphism and laziness to describe hardware [She85,O D96,CLM98,BCSS98] Describing Circuits The approach of modelling circuits as functions on streams was taken as early as in the days of FP [She85] and later modernised in systems like Hydra [O D96] and Hawk [CLM98] The following introduction to functional circuit description owes much to the description in [O D93] Here are some examples of primitive circuit components modelled as functions. We assume the existence of a datatype Signal, which represents an input, output or internal wire in a circuit. ....
B. Cook, J. Launchbury, and J. Matthews. Specifying superscalar microprocessors in Hawk. In Formal Techniques for Hardware and Hardware-like Systems. Marstrand, Sweden, 1998.
....which are both automatically synthesizable and verifiable, open up the possibility of architectural exploration at a fraction of the time and cost than what is feasible using current commercial tools. Formal verification of microprocessors has gained considerable attention in recent years [2, 3, 7, 11]. Other formal techniques, such as Lamport s TLA and Lynch s I O automata, can also be used to model microprocessors. While all these techniques have something in common with TRS s, we find the use of TRS s more intuitive in both architecture descriptions and correctness proofs. TRS s can be used ....
Byron Cook, John Launchbury, and John Matthews. Specifying Superscalar Microprocessors in Hawk. In Proceedings of the Workshop on Formal Techniques for Hardware and Hardware-like Systems, Marstrand, Sweden, June 1998.
....A refinement of the approach in [2] more applicable to out of order systems and long pipelines is [19, 20] In addition, work has been undertaken on the complex timing models of superscalar processors [30, 1, 5] 18] additionally considers exception processing in such an environment. The work in [21, 4] uses Hawk,a variant of the functional language Haskell. Generaly, the intuitive models seen are conceptually similar to our own [14, 15, 8] though significant di#erences exist in the approach to time. Commonly, in pipelined systems, state elements in the specification are viewed as distributed ....
B Cook, J Launchbury, and J Matthews. Specifying superscalar microprocessors in hawk. In M Sheeran, editor, Workshop on Formal Methods for Hardware (Marstrand, Sweden), 1998.
.... the DLX architecture [16] A refinement of this approach, more applicable to out of order systems and long pipelines is [19, 20] In addition, superscalar processors have been addressed: in particular, the increased complexity of verification in the face of complex timing behaviour [31, 1, 5, 25] [21, 4] use a variant of Haskell called Hawk, and Isabelle for proofs; and [18] additionally considers exception processing in such an environment. The intuitive models in [25, 26, 32] are conceptually similar to our own [14, 15, 8] However, there are di#erences, particularly in the approach to time, ....
B Cook, J Launchbury, and J Matthews. Specifying superscalar microprocessors in hawk. In M Sheeran, editor, Workshop on Formal Methods for Hardware (Marstrand, Sweden), 1998.
....join twice There is no way for eval to tell that it has seen this argument before . This problem arises, in various guises, in almost every embedded domain speci c language. We have seen it in Fran s reactive animations [6] the diculty of extracting net lists from Hawk circuit descriptions [4], and in other settings besides. What makes it particularly frustrating is that the sharing is absolutely apparent in the source program. One solution is to suggest that eval be made a memo function [10, 3, 12] but we do not nd it satisfactory. Losing sharing can give rise to an unbounded ....
B Cook, J Launchbury, and J Matthews. Specifying superscalar microprocessors in hawk. In Formal techniques for hardware and hardware-like systems, Marstrand, Sweden, 1998.
....we again had two options: to make a Haskell variant and write specialised tools (compilers, synthesis engines and so on) to process it, or to make use of existing Haskell compilers by embedding a hardware description language in Haskell. Launchbury and his group are investigating the first option [CLM98]. We chose the second. 2 Overview of the System This section presents the types and abstractions used in the Lava system. 2.1 Monads Dealing with an embedded language in a functional language requires a significant amount of information plumbing. A good way to hide this is to use monads [Wad92] ....
....used to generate formulas from circuit descriptions, for input to theorem provers, although the idea of having multiple interpretations has been a recurring theme in O Donnell s work. Launchbury and his group are experimenting with a different approach to using Haskell for hardware description [CLM98]. In Hawk, a type of signals and Lustre like functions to manipulate it are provided. Circuits are modelled as functions on signals, and the lazy state monad is used locally to express sequencing and mutable state. The main application so far has been to give clear and concise specifications of ....
Byron Cook, John Launchbury, and John Matthews. Specifying superscalar microprocessors in Hawk. In Formal Techniques for Hardware and Hardware-like Systems. Marstrand, Sweden, 1998.
....the laws in a proof of equivalence between two microarchitectures. While space constraints prohibit us from giving the complete proof, the top level proof is sketched diagrammatically in [16] 2 Specifying a Pipelined Microarchitecture We specify microarchitectures using the Hawk language [4, 17]. Hawk allows us to express modern microarchitectures clearly and concisely, to simulate the microarchitectures, either directly with concrete values, or symbolically, and provides a formal basis for reasoning about their behavior at source code level. Currently Hawk is a set of libraries built on ....
Cook, B., Launchbury, J., and Matthews, J. Specifying superscalar microprocessors in Hawk. In FTH'98, Workshop on Formal Techniques for Hardware and Hardware-like Systems (Marstrand, Sweden, June 1998).
.... through symbolic simulation in Haskell of the simple, non pipelined, state based processor model found in Moore [12] We have also worked on symbolic simulation of a superscalar, out of order with exceptions, pipelined microprocessor model in the Haskell based hardware description language Hawk [3, 11]. We are now able to simulate symbolic data ow for programs running on the model. We are currently extending the Hawk library to handle symbolic control paths as well. Because it is stream based, the model does not have explicit access to its state. Hawk models usually process transactions, which ....
B. Cook, J. Launchbury, and J. Matthews. Specifying superscalar microprocessors in Hawk. In Workshop on Formal Techniques for Hardware, 1998.
No context found.
Byron Cook, John Launchbury, and John Matthews, "Specifying superscalar microprocessors in Hawk", 1998.
No context found.
Cook, B., Launchbury, J., and Matthews, J. (1998). Specifying superscalar microprocessors in Hawk. In Formal techniques for hardware and hardware-like systems, Marstrand, Sweden.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC