Automatic Modeling and Validation of Pipeline Specifications driven by an
Architecture Description Language
z y y y y
Prabhat Mishray Hiroyuki Tomiyama Ashok Halambi Peter Grun Nikil Dutt Alex Nicolau y Center for Embedded Computer Systems z Inst. of Systems & Information Tech.
University of California, Irvine, CA 92697 Fukuoka 814-0001, Japan g fpmishra, ahalambi, pgrun, dutt, nicolau @cecs.uci.edu [email protected]
Abstract controlled token nets from a logic design to perform efficient model checking. Our verification technique is complimentary Verification is one of the most complex and expensive tasks to these bottom-up approaches. We leverage the system ar- in the current Systems-on-Chip (SOC) design process. Many chitect’s knowledge about the behavior of the pipelined ar- existing approaches employ a bottom-up approach to pipeline chitecture through ADL constructs, which allows a powerful validation, where the functionality of an existing pipelined top-down approach to pipeline verification using behavioral processor is, in essence, reverse-engineered from its RT-level knowledge of the pipelined architecture. The ADL descrip- implementation. Our approach leverages the system archi- tion also serves as a golden reference model. Furthermore, tect’s knowledge about the behavior of the pipelined archi- ADL driven verification is a natural choice during rapid de- tecture, through Architecture Description Language (ADL) sign space exploration(DSE) of System-on-Chip(SOC) archi- constructs, and thus allows a powerful top-down approach tectures. to pipeline validation. This paper addresses automatic vali- In this paper, we present an automatic validation frame- dation of processor, memory, and co-processor pipelines de- work, driven by an ADL. A novel feature of our approach is scribed in an ADL. We present a graph-based modeling of the ability to model the pipeline structure and behavior for architectures which captures both structure and behavior of the processor, co-processor, as well as the memory subsystem the architecture. Based on this model, we present formal using a graph-based model. Based on this model we present approaches for automatic validation of the architecture de- formal approaches for automatic validation of the architecture scribed in the ADL. We applied our methodology to verify described in an ADL. We applied our methodology to verify several realistic architectures from different architectural do- several realistic architectures from different architectural do- mains to demonstrate the usefulness of our approach. mains (RISC, DSP, VLIW, and Superscalar) to demonstrate 1 Introduction the usefulness of our approach. The rest of the paper is organized as follows. Section 2 Verification is one of the most complex and expensive tasks presents related work addressing ADL-driven validation ap- in the current System-On-Chip design process. In current proaches. Section 3 outlines our approach and the overall flow state-of-the-art verification methodology, the architect pre- of our environment. Section 4 presents a graph-based model- pares an informal specification in the form of an English docu- ing of processor, memory, and co-processor pipelines. Sec- ment. The logic designer implements the modules and verifies tion 5 proposes several properties that must be satisfied for them in an ad-hoc manner using simulation test vectors since valid pipeline specification. Section 6 illustrates validation of there is no golden reference model for validation. A key chal- pipeline specifications for several realistic architectures. Fi- lenge in today’s design verification is to extract the informa- nally, Section 7 concludes the paper. tion from the RT level description and to perform equivalence checking with the model extracted from the given specifica- 2 Related Work tion (written in English language). Many existing approaches Recent work on language-driven Design Space Exploration ([5], [8]) employ a bottom-up approach to pipeline validation, (DSE) ([1], [2], [4], [12]), uses Architectural Description Lan- where the functionality of an existing pipelined processor is, guages (ADL) to capture the processor and memory archi- in essence, reverse-engineered from its RT-level implementa- tecture, generate automatically a software toolkit (including tion. Hauke et al. [5] compare extracted ISA level description compiler, simulator, assembler) for that architecture, and pro- with the given ISA level specification. Ho et al. [3] extract vide feedback to the designer on the quality of the architec-
This work was partially supported by grants from NSF (MIP-9708067), ture. It is necessary to verify that the ADL description of DARPA (F33615-00-C-1632), Motorola Inc. and Hitachi Ltd. the architecture is well-formed prior to generating software toolkits. The process of any specification is error-prone and ADL e.g., EXPRESSION [1]. This graph model can cap- validation techniques can be used to check for correctness of ture processor, memory, and co-processor pipelines for wide the specification. Moreover, changes made to the architecture variety of architectures viz., RISC, DSP, VLIW, Superscalar, during design space exploration may result in incorrect exe- and Hybrid architectures. Note that it is important to capture cution of the system and validation techniques can be used to the memory pipeline along with processor pipeline, since any ensure correctness of the architecture. memory operation exercises both the processor and memory The work of Tomiyama et al. [9, 10] is a step in this di- pipeline structures [13]. In this section we briefly describe rection. They defined certain properties that need to be veri- how we model the structure, behavior and the mapping func- fied to ensure that the architecture description is well-formed. tions between them. The detailed description of the modeling However, the properties they proposed are applicable to sim- can be found in [7]. ple processor models. Moreover, they do not demonstrate how 4.1 Structure these properties can be applied in SOC verification during de-
sign space exploration. Mishra et al. [11] presented a graph The structure of an architecture pipeline is modeled as a G
based validation of processor cores and is closest to our ap- graph S
G =V ;E :
S S S (1)
proach. Our work extends this technique to validate pipeline
V V S specifications of coprocessors and memory subsystem along S denotes a set of components in the architecture. con-
with processor cores. sists of four types of components
V = V [ V [ V [ V
unit stor e por t conn
3 Our Approach S (2)
V V stor e where unit is a set of units (e.g., ALUs), asetof
Figure 1 shows the flow in our approach. In our ADL V
driven design space exploration scenario, the designer starts storages (e.g., register files, caches), por t asetofports,and
V E S by describing the programmable architecture in an ADL. The conn asetofconnections (e.g., buses). consists of two
graph model of the architecture can be generated automati- types of edges
E = E [ E
data tr ans pipeline cally from this ADL description. Several properties are ap- S (3)
plied automatically to ensure that the architecture is well-
E E
tr ans pipeline where data is a set of data-transfer edges and formed. To enable rapid DSE the software toolkit can be gen- is a set of pipeline edges.
erated from this golden reference model and the feedback can
E V V [ V V
tr ans unit por t stor e por t
be used to modify the ADL description of the architecture. data
[ V V [ V V
conn conn por t This golden reference model can also be used to verify the por t
implementation by performing equivalence checking with the
[ V V [ V V
unit por t stor e por t (4)
reverse-engineered description of the implementation..
E V V
unit unit pipeline (5)
SPECIFICATION ADL
v ;v 2 E
tr ans 2 data A data-transfer edge 1 indicates connec- English Document SPECIFICATION
Automatic tivity of the two components. Through data-transfer edges, Feedback Manual Property data is transfered from components to components. A pipeline Verification Checking edge specifies the ordering of units comprising the pipeline
stages (or simply pipe-stages). Intuitively, operations flow High Level from pipe-stages to pipe-stages through pipeline edges. Both Graph Model Description Eqivalence pipeline edges and data-transfer edges are uni-directional. Bi- Checking Property Feedback directional data-transfers are modeled using two edges of dif- Checking ferent directions. Reverse For illustration, we use a simple multi-issue architecture Engineering containing one co-processor and a memory subsystem. Fig- ure 2 shows the graph-based model of this architecture that can issue up to three operations (an ALU operation, a mem- RT Design Compiler Simulator ory access operation and one coprocessor operation) per cy- Appl Obj cle. In the figure, normal boxes denote units, dotted boxes Figure 1. ADL-driven validation flow are storages, small circles are ports, shaded boxes are con- 4 Architecture Pipeline Modeling nections, bold edges are pipeline edges, and dotted edges are data-transfer edges. For ease of illustration, we have shown We develop a graph-based modeling of architecture only few ports and connections. Each component has several pipelines which captures both the structure and the behav- attributes. The figure shows only two of them viz., capac- ior. The graph model presented here can be derived from ity and timing for some of the nodes. The capacity denotes a pipeline specification of the architecture described in an the maximum number of operations which the component can 3,1 L1 3,2 Fetch OO p5 p6 Inst. ADD ADD_SRC1 ADD_SRC2 ADD_DST c3 c1 4,1 3,1 LD LD_SRC1 LD_SRC_MEM LD_DST O Decode p4
Operation edge Execution edge 1,1 CP_1 ALU1 AddrCalc 1,1 EMIF_1 Figure 3. A fragment of the behavior graph 1,1 1,1 p3 Local O 1,10 CoProc DMA Memory
Register V
are of two types: opc is a set of opcode nodes that represent File
1,1 CP_2 V
O p2 the opcode (i.e. mnemonic), and ar g is a set of argument 1,1 EMIF_2 nodes that represent argument fields (i.e., source and destina- 1,1 1,1 p7 L1 L2 Main tion arguments). Each operation graph must have one opcode ALU2 MemCntrl O O Data Unified Memory 1,1 p8 node. In Figure 3, the ADD and LD nodes are opcode nodes, c4 1,2 while the others are argument nodes.
Write Unit Pipeline edge
= V [ V
Back V
opc ar g c2 B (7) 2,1 Storage Data-transfer edge
2,1 Op1
= E [ E
O E
oper exec Port Connection B (8)
Figure 2. A structure graph of a simple architecture Edges between the nodes are also of two types. Both types E handle in a cycle, while the timing denotes the number of cy- of edges are uni-directional. oper is a set of operation edges cles taken by the component to execute them. A path from that link the fields of the operation and also specify the syntac- a root node (e.g., fetch unit) to an final node (e.g, WriteBack tical ordering between them. For each operation graph, oper-
unit) consisting of units and pipeline edges is called a pipeline ation edges must construct a path containing an opcode node. E path. Intuitively, a pipeline path denotes an execution flow in On the other hand, exec is a set of execution edges that spec-
the pipeline taken by an operation. For example, one of the ify the execution ordering between the argument nodes.
E V V
ar g ar g
exec (9) g pipeline path is fFetch, Decode, ALU1, ALU2, WriteBack . A path from an unit to main memory or register file consisting There must be no cycles consisting of execution edges. In Fig-
of storages and data-transfer edges is called a data-transfer ure 3, the solid edges represent operation edges while the dot- g path. For example, fMemCntrl, L1, L2, MainMemory is a ted edges represent execution edges. For the ADD operation, data-transfer path. A memory operation traverses different the operation edges specify that the syntactical ordering is op- data-transfer paths depending on where it gets the data in the code followed by ADD SRC1, ADD SRC2 and ADD DST memory. For example, a load operation which is hit in L2 will arguments (in that order) and the execution edges specify that traverse the path (includes pipeline and data-transfer paths) the ADD SRC1 and ADD SRC2 arguments are executed (i.e., fFetch, Decode, AddrCalc, MemCntrl, L1, L2(hit), L1, Mem- read) before the ADD DST argument is written.
Cntrl, WriteBackg. Similarly, a co-processor operation will 4.3 Mapping Between Structure and Behavior traverse the path fFetch, Decode, CP 1, EMIF 1, CoProc,
CP 2, EMIF 2 g.However,inthispathwehavenotshowndif- Another component of our graph model is a set of functions ferent data transfers. For example, EMIF 1 sends read request that correlate the abstract, high-level behavioral model of the to DMA and DMA writes data in coprocessor local memory processor to the structural model. Below, we define a set of which coprocessor uses during computation and writes the re- useful mapping functions that map nodes in the structure to sult back and finally EMIF 2 requests DMA to write the result nodes in the behavior (or vice-versa). back to main memory. The units-to-opcodes (opcodes-to-units) mapping is a bi- 4.2 Behavior directional function that maps unit nodes in the structure to opcode nodes in the behavior. It defines, for each functional The behavior of an architecture is a set of operations that unit, the set of operations supported by that unit (and vice
can be executed on it. Each operation in turn consists of a set versa).
f : V ! V