Browse Prior Art Database

Dynamic Event Controller for Increasing Simulation Coverage

IP.com Disclosure Number: IPCOM000118542D
Original Publication Date: 1997-Mar-01
Included in the Prior Art Database: 2005-Apr-01
Document File: 4 page(s) / 112K

Publishing Venue

IBM

Related People

Barrett, A: AUTHOR [+5]

Abstract

The simulation of complex computer systems often aims at 100% verification of the design, though it is not achievable in practice due to the large size of the system state space. The coverage tracker called CoveT, described in a companion disclosure (*), aims at tracking events that are predefined to represent the entire space of races. The idea is to make sure that, at each coherence element such as L1 or L2 cache, all possible concurrent events ("races") take place at the interface at every given state of the coherence element. This event space is very small when compared with the entire state space a processor is capable of visiting.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Dynamic Event Controller for Increasing Simulation Coverage

      The simulation of complex computer systems often aims at 100%
verification of the design, though it is not achievable in practice
due to the large size of the system state space.  The coverage
tracker called  CoveT, described in a companion disclosure (*), aims
at tracking events  that are predefined to represent the entire space
of races.  The idea is  to make sure that, at each coherence element
such as L1 or L2 cache, all  possible concurrent events ("races")
take place at the interface at every  given state of the coherence
element.  This event space is very small when compared with the
entire state space a processor is capable of visiting.

      The events described above are made to happen in
system simulation using tests generated using standard test
generators.  However, this approach of using only instructions to
generate events is usually unsuccessful since internal events are
hard to control during simulation.  In this disclosure, a mechanism
is proposed  by which the certain types of events can be controlled
at the interfaces  of the coherence elements allowing achievement of
a much better coverage during simulation.

      The suggested solution is a Dynamic Event Controller (DEC),
written as a behavioral, that interfaces to the system bus of the
multiprocessor system.  This behavioral has access to the event
database maintained by the CoveT tool; this database contains the
entire set of  races that are possible in the system with those
events that have been  seen already marked off appropriately.  If the
DEC sees some event that  has not been achieved in previous system
simulation runs, then it waits  for an opportune moment during the
current system simulation and injects  an appropriate transaction on
the bus that will most transaction on the  bus that will most likely
create the event of interest to happen in the  system.

The Figure illustrates how this dynamic event controller works.

      The CoveT tool provides an Application Program Interface (API)
that when called will choose a random event from among the list of
events that has not been seen in system simulation.  This API will
allow specification of part of an event as input and will provide one
or more  events that match the partial event specification.  An
example of the partial specification of an event for the L2 is the
state of L2 along with the transactions that are in progress on the
L1-L2 interface; in this case, the API will give a list of events
that specify what can potentially happen on the 6xx bus to complete
an event specification. If  no partial specification is given, the
API will choose an unseen event  randomly.  The dynamic event
controller uses this API to choose an event  that it will try to
create during the current system simulation run.

      In the Figure, the L1-L2 inte...