From my understanding of your description, UTF may be suitable. Our customers use UTF exactly for this type of modeling. Eager to hear your comments. Sorry for late reply, was traveling.
Software exists as layers.
The abstraction needed for a model is independent of these layers. Taking the cache as an example, The algorithms are concerned with the replacement policies, the stored values, coherency protocols and the like. These can be described indpendently of cycles. It is important to fully abstract the algorithms from their implementation. A failure to do so couples the model to its proposed implementation, severly restricting the flexibility that separation of concerns provides.