Changes between Version 74 and Version 75 of Writing Rules/Tlmt


Ignore:
Timestamp:
Nov 15, 2008, 6:49:31 PM (15 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Writing Rules/Tlmt

    v74 v75  
    295295defining if it should participate to the arbitration. This '''active''' flag is always set to true for general purpose processors.
    296296Any arbitration thread receiving a timed request is resumed. It must obtain an up to date timing & activity information for all its input channels before making any decision.
    297 To do that, the LocalTime and ActivityStatus of all VCI initiators are considered as global variables, that can be accessed (for read only) by all arbitration threads. 
     297To do that, the !LocalTime and !ActivityStatus of all VCI initiators are considered as global variables, that can be accessed (read only) by all arbitration threads. 
    298298The arbitration policy is the following : The arbitration thread scans all its input channels, and selects the smallest time between the active initiators.
    299299If there is a request, this request is forwarded to the target, and the arbitration thread local time is updated.
    300 If not, the thread is descheduled and will be resumed when it receives a new request.
     300If there is no request from this initiator, the thread is descheduled and will be resumed when it receives a new request.
    301301
    302302For efficiency reasons, in this implementation, each arbitration thread constructs - during elaboration of the simulation - two local array of pointers (indexed
    303 by the input channel index) to access the LocalTime and ActivityStatus variables of the corresponding VCI initiators. To get this information, each arbitration thread
     303by the input channel index) to access the !LocalTime and !ActivityStatus variables of the corresponding VCI initiators. To get this information, each arbitration thread
    304304uses the '''nb_transport_bw()''' function on all its VCI target ports, with a a dedicated value for the phase called '''soclib::tlmt::TLMT_INFO'''. The payload argument refers to the same
    305305'''tlmt_vci_transaction''' object as the two other phase values (TLMT_CMD and TLMT_RSP).
     
    309309    phase   = soclib::tlmt::TLMT_INFO;
    310310    m_RspArbCmdRout[i]->p_vci->nb_transport_bw(payload, phase, rspTime);
    311     m_array[i].activity = payload.get_activity_ptr();
    312     m_array[i].time = payload.get_local_time_ptr();     
     311    m_array[i].ActivityStatus = payload.get_activity_ptr();
     312    m_array[i].LocalTime = payload.get_local_time_ptr();       
    313313}
    314314}}}