En TLM-2 se contemplan 3 modos distintos de modelado (llamados Coding Styles en los documentos oficiales) : Untimed, Loosely-timed y Approximately.timed. Cada uno de ellos sirve para un propósito determinado, y para modelar distintos tipos de sistemas. También debemos tener en cuenta el coste de simulación de cada modo (menos costoso Untimed, más costoso el Approximatelly-timed).
Untimed
Este modo usa exclusivamente el interface bloqueante. Este interface no lleva ninguna información sobre tiempos de respuesta, simplemente el initiator usa la función b_transport para enviar datos al target.
Es el modo mas sencilo de usar y de simular, y lo podemos usar para comprobar que el sistema está bien diseñado y particionado.
Loosely-timed
Este modo también usa el interface bloqueante. De esta forma tenemos dos puntos de tiempo: la llamada a la función b_transport y el retorno de la misma (cuándo empieza y cuándo acaba la transacción).
Este modo permite usar temporal decoupling. Ya hablaremos de ello en otro post, pero la idea es que podemos tener partes de nuestro modelo corriendo “en su propio tiempo” hasta que necesitan sincronizarse con el resto del modelo.
Approximately timed
Este modo usa el interface no bloqueante, de esta forma se pueden anotar tiempos en todas las fases de una transacción (tipicamente un protocolo tiene 3 o 4 fases).
Este modo es el más detallado y por tanto también será el más lento en simularse.
Estos son los 3 modos que prevé el Standard TLM-2.0 (alguien necesita algo más?) y habalaremos más en detalle de cada uno en futuros posts.
Deja un comentario