Changes between Version 2 and Version 3 of TLMDT


Ignore:
Timestamp:
May 2, 2011, 6:38:24 PM (13 years ago)
Author:
gioja
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TLMDT

    v2 v3  
    1 == TLMDT Modeling for tightly interdependent architectures with several levels of interconnections ==
    2 === 0. Introduction
     1= TLMDT Modeling for tightly interdependent architectures with several levels of interconnections =
     2== 0. Introduction
    33''This document is still under development''.
    44
     
    2020* Components which are target and initiator at the same time.
    2121
    22 === 1. VCI Messages usage
    23 === 2. PDES Messages usage
    24 === 3. Efficient time modeling in a multi-transactionnal VCI Component
    25 === 4. VCI Initiator modeling
    26 === 5. VCI Target-Initiator (decoupled) modeling
    27 === 6. VCI Target-Initiator (coupled) modeling
    28 === 7. VCI Target modeling
    29 === 8. VCI Local Crossbar modeling
    30 === 9. VCI Global Crossbar modeling
    31 === 10. Proof of the deadlock free feature
    32 === 11. Locating the loss in precision
     22== 1. VCI Transactions
     23The VCI Transactions representation mostly remains the same. Two new concepts are introduced for optimization and performance gain. They both got default value which will allow to skip this aspect for convenience. However, this will, in some cases, increase the part of PDES communication (compared to the VCI one) and slow down the simulation.
     24=== 1.1. Blocking type
     25=== 1.2. Primarity
     26A VCI Transaction can either be primary or secondary. The VCI transaction is primary only if it is not related to another transaction. That is to say when the response will be caught and treated, no response to another transaction will be sent. A pure Initiator will only send primary transactions while a Target-Initiator will be able to send both.
     27
     28The Primarity of a transaction is a boolean stored in its payload extension. If no primarity is specified by the user, it is considered as primary.
     29{{{#!c++
     30tlm::tlm_generic_payload *payload_ptr = new tlm::tlm_generic_payload();
     31soclib_payload_extension *extension_ptr = new soclib_payload_extension();
     32
     33//Fill the transaction with the necessary datas
     34...
     35
     36//Set the transaction as primary - 2 methods
     37extension_ptr->set_primary();
     38extension_ptr->set_primarity(true);
     39
     40//Set the transaction as secondary - 2 methods
     41extension_ptr->set_secondary();
     42extension_ptr->set_primarity(false);
     43
     44//Send the transaction the usual way
     45...
     46}}}
     47== 2. PDES Messages
     48=== 2.1. PDES Activity message
     49The PDES activity message remains unmodified. The activity message intends to connect or disconnect an initiator from the interconnect with which it is linked. If the activity of an initiator is true, then the associated centralized buffer slot on the interconnect will be handled for the temporal arbitration, otherwise it won't. The following code is a recall from the linked TLMDT for SOCLIB specification.
     50{{{#!c++
     51send to interconnect the initiator activity status
     52void my_initiator::sendActivity()
     53{
     54  tlm::tlm_generic_payload *payload_ptr = new tlm::tlm_generic_payload();
     55  soclib_payload_extension *extension_ptr = new soclib_payload_extension();
     56  tlm::tlm_phase            phase;
     57  sc_core::sc_time          time;
     58
     59  // set the active or inactive command
     60  if(m_pdes_activity_status->get()) extension_ptr->set_active();
     61  else extension_ptr->set_inactive();
     62  // set the extension to tlm payload
     63  payload_ptr->set_extension (extension_ptr);
     64  //set the tlm phase
     65  phase = tlm::BEGIN_REQ;
     66  //set the local time to transaction time
     67  time = m_pdes_local_time->get();
     68  //send a message with command equals to PDES_ACTIVE or PDES_INACTIVE
     69  p_vci_init->nb_transport_fw(*payload_ptr, phase, time);
     70  //wait a response
     71  wait(m_rspEvent);
     72}
     73}}}
     74Usage :
     75{{{#!c++
     76  //active the initiator and inform to interconnect
     77  m_pdes_activity_status->set(true);
     78  sendActivity();
     79}}}
     80
     81{{{#!c++
     82  //desactive the initiator and inform to interconnect
     83  m_pdes_activity_status->set(false);
     84  sendActivity();
     85}}}
     86
     87=== 2.2. PDES Null_command
     88=== 2.3. PDES Null_response
     89=== 2.4. PDES Sync transaction
     90
     91== 3. Efficient time modeling in a multi-transactionnal VCI Component
     92== 4. VCI Initiator modeling
     93== 5. VCI Target-Initiator (decoupled) modeling
     94== 6. VCI Target-Initiator (coupled) modeling
     95== 7. VCI Target modeling
     96== 8. VCI Local Crossbar modeling
     97== 9. VCI Global Crossbar modeling
     98== 10. Proof of the deadlock free feature
     99== 11. Locating the loss in precision