Changes between Version 6 and Version 7 of TLMDT
- Timestamp:
- May 11, 2011, 1:43:33 PM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TLMDT
v6 v7 128 128 129 129 === 2.2. PDES Null_command 130 The Null_command is a message with does not require a response. Its only goal is to deliver a temporal information, in order to preserve the synchronization between components. Mostly, the initiator doesn't stop when the null_command message is sent, except if it is waiting for the response from a nother transaction. This messages allows the different components to respect their time quantums. It is also used to perform the Active_Sync on initiators. The message scope is local, it cannot be routed or redirected. Receiving a null_command awakes the target if it is waiting. Initiators and interconnects can send Null_commands.130 The Null_command is a message with does not require a response. Its only goal is to deliver a temporal information, in order to preserve the synchronization between components. Mostly, the initiator doesn't stop when the null_command message is sent, except if it is waiting for the response from a transaction. This messages allows the interconnects to respect their time quantums, regarding to its targets. It is also used to perform the Active_Sync on initiators. The message scope is local, it cannot be routed or redirected. Receiving a null_command awakes the target if it is waiting. Initiators and interconnects can send Null_commands. 131 131 {{{#!c++ 132 132 tlm::tlm_generic_payload *payload_ptr = new tlm::tlm_generic_payload(); 133 133 soclib_payload_extension *extension_ptr = new soclib_payload_extension(); 134 134 135 //set as a null_command - 2 methods 135 136 extension_ptr->set_null_command(); 137 extension_ptr->set_command(PDES_NULL_COMMAND); 136 138 // set the extension to tlm payload 137 139 payload_ptr->set_extension (extension_ptr); … … 140 142 //set the local time to transaction time 141 143 time = m_pdes_local_time->get(); 142 //send a message with command equals to PDES_ACTIVE or PDES_INACTIVE143 144 p_vci_init->nb_transport_fw(*payload_ptr, phase, time); 144 145 … … 157 158 //Set the Null_response flag - 2 methods 158 159 extension_ptr->set_null_response(); 159 extension_ptr->set_ vci_response(false);160 extension_ptr->set_command(PDES_NULL_RESPONSE); 160 161 //set the tlm phase 161 162 phase = tlm::BEGIN_RSP; 162 163 //set the local time to transaction time 163 164 time = m_pdes_local_time->get(); 164 //send a message with command equals to PDES_ACTIVE or PDES_INACTIVE165 165 p_vci_target->nb_transport_bw(*payload_ptr, phase, time); 166 166 167 167 //Retrieve information 168 168 extension_ptr->is_null_response(); 169 extension_ptr->is_vci_response();170 169 }}} 171 170 172 171 === 2.4. PDES Sync transaction 172 The Sync transaction is composed of a command and a response. It is used by initiators which went ahead their quantum, in order to keep the synchronization between initiators connected on the same interconnect. The transaction's scope is local. Its response is sent when it is arbitrated on the interconnect. This means that every other initiators connected to this interconnect got a higher time, so it can pursue its treatment until the next quantum. 173 174 {{{#!c++ 175 //... Initiator 176 tlm::tlm_generic_payload *payload_ptr = new tlm::tlm_generic_payload(); 177 soclib_payload_extension *extension_ptr = new soclib_payload_extension(); 178 179 //Set the Sync_cmd flag - 2 methods 180 extension_ptr->set_sync(); 181 extension_ptr->set_command(PDES_SYNC); 182 183 //set the tlm phase 184 phase = tlm::BEGIN_REQ; 185 //set the local time to transaction time 186 time = m_pdes_local_time->get(); 187 p_vci_initiator->nb_transport_fw(*payload_ptr, phase, time); 188 wait(m_rspEvent); 189 190 //... Interconnect 191 //Retrieve information 192 extension_ptr->is_sync(); 193 //when arbitrated, send the response 194 phase = tlm::BEGIN_RSP; 195 p_vci_target->nb_transport_bw(*payload_ptr, phase, time); 196 197 //... Initiator (callback function) 198 //Sync is done, initiator can pursue its treatment 199 if(extension_ptr->is_sync()){ 200 notify(m_rspEvent); 201 } 202 203 }}} 204 173 205 === 2.5. Passive_Sync / Active_Sync 174 206 … … 182 214 == 10. Proof of the deadlock free feature 183 215 == 11. Locating the loss in precision 216 == 12. Adjust precision / performance for a simulation