RecoSim  1.0
 All Classes Files Functions Variables Enumerations
Public Member Functions | List of all members
Scheduler_interface Class Referenceabstract
Inheritance diagram for Scheduler_interface:
Reconfiguration_manager_base Reconfiguration_manager

Public Member Functions

virtual bool Scheduler_are_tasks_waiting (void) const =0
 Check if there are tasks waiting in the queue. More...
 
virtual SchedulerRequestScheduler_current_task_waiting ()=0
 Get request with the current task in waiting queue. More...
 
virtual int Scheduler_get_waiting_queue_size (void)=0
 Get waiting queue size. More...
 
virtual int Scheduler_position_of_current_element (void)=0
 Get position of the current waiting queue element. More...
 
virtual SchedulerRequestScheduler_get_element (int position)=0
 Get a reference to an element in the queue. More...
 
virtual void Scheduler_update_queue (void)=0
 Update priority queue after changes (e.g. priority change)
 
virtual
Task_to_schedule_interface
Scheduler_get_task_to_schedule_ptr (int taskID)=0
 Get pointer to the task 'taskID'.
 
virtual bool Scheduler_last_task_waiting (void) const =0
 Reserved.
 
virtual void Scheduler_erase_current_task_waiting ()=0
 Reserved.
 
virtual SchedulerRequest Scheduler_next_task_waiting ()=0
 Reserved.
 
virtual void Scheduler_reset_current_position_in_waiting_queue ()=0
 Reserved.
 
virtual vector< RZ * > Scheduler_get_compatible_rz_vector (int task_id)=0
 Get the list of reconfigurable zones that fit task 'task_id'. More...
 
virtual sc_time Scheduler_get_task_running_time (int task_id)=0
 Get running time of the task since the last idle state. More...
 
virtual vector< RZ * > Scheduler_get_all_rz_vector (void)=0
 Get the list of all reconfigurable zones used in the architecture. More...
 
virtual int Scheduler_get_current_module_ID (RZ *rz)=0
 Get ID of task currently instantiated on a reconfigurable zone. More...
 
virtual bool Scheduler_is_RZ_blank (RZ *rz)=0
 Check if RZ is blank or used by a task. More...
 
virtual int Scheduler_get_module_ID (SchedulerRequest &req)=0
 Retrieve task ID associated with shceduler request. More...
 
virtual int Scheduler_get_application_number (void)=0
 Get the number of applications. More...
 
virtual Application_interfaceScheduler_get_application_interface (int index)=0
 Get the application interface from an index. More...
 
virtual bool Scheduler_exist_rz_properties (string inst_name)=0
 test if the RZ properties of the instance exists (Processor or Hw RZ) More...
 
virtual bool Scheduler_exist_rz_properties (RZ *rz)=0
 test if the RZ properties of the instance exists (Processor or Hw RZ) More...
 
virtual RZ_configScheduler_get_rz_properties (string inst_name)=0
 Get the RZ properties of the instance (Processor or Hw RZ) More...
 
virtual RZ_configScheduler_get_rz_properties (RZ *rz)=0
 Get the RZ properties of the RZ (Processor or Hw RZ) More...
 
virtual Config_fct_pointScheduler_get_current_fct_point (RZ *rz)=0
 Get the current fct. point of the RZ (Processor or Hw RZ) More...
 
virtual void Scheduler_emulate_scheduler_behavior (void)=0
 Emulate scheduler behaviour in terms of execution time and energy consumption.
 
virtual void Scheduler_set_scheduler_active (int taskid)=0
 Set scheduler active for task 'taskid'. More...
 
virtual bool Scheduler_has_task_already_requested_mapping (int task_to_map, int request_owner)=0
 Check if a task placement has already been demanded by the same predecessor. More...
 
virtual void Scheduler_add_finished_precedence (int task_mapped, int precedence)=0
 Add a new finished precedence to a task. More...
 
virtual void Scheduler_notify_request_owner_module_ready (int owner, int ready)=0
 Notify the owner of a request that it has been granted (i.e. the module is instantiated on the FPGA and ready to receive data). More...
 
virtual void Scheduler_print_finished_precedence_vector (int task_id)=0
 Prints the list of finished predecessors for a task. More...
 
virtual void Scheduler_send_update_parameters_to_module (RZ *rz)=0
 Send parameters to update algorithms. More...
 
virtual void Scheduler_configure_task (RZ *rz, int id, int implID, int requestOwner)=0
 Launch task configuration through either HW of SW reconfiguration unit. More...
 
virtual void Scheduler_rerun_task (SchedulerRequest &req)=0
 Changes a task from MAPPED to RUNNING state. More...
 
virtual void Scheduler_set_current_task (RZ *rz, int task_id)=0
 Set current task hosted by a reconfigurable zone. More...
 
virtual Task_state Scheduler_get_task_state (int task_id)=0
 Get task state. More...
 
virtual Task_state Scheduler_get_task_state (RZ *rz)=0
 Get state of the task instantiated on a reconfigurable zone. More...
 
virtual bool Scheduler_set_blank (int hosting_rz_id)=0
 Set blank a reconfigurable zone. More...
 
virtual bool Scheduler_set_blank (RZ *rz)=0
 Set blank a reconfigurable zone. More...
 
virtual bool Scheduler_is_task_preempted (int taskid) const =0
 Check if task is preempted. More...
 
virtual double Scheduler_get_performance_effort (void) const =0
 Get scheduler performance effort. More...
 
virtual double Scheduler_get_power_effort (void) const =0
 Get scheduler power effort. More...
 
virtual double Scheduler_get_area_effort (void) const =0
 Get scheduler area effort. More...
 
virtual const char * Scheduler_get_name (void) const =0
 Get scheduler instance name. More...
 
virtual ostream & Scheduler_get_output_stream (void)=0
 Get output stream. More...
 
virtual void Scheduler_display_task_state_table (void) const =0
 Display task state table on the standard output.
 
virtual void Scheduler_display_rz_current_module_table (void) const =0
 Displays RZ occupation on the standard output.
 
virtual void Scheduler_display_waiting_queue (void) const =0
 Display waiting queue.
 

Member Function Documentation

virtual void Scheduler_interface::Scheduler_add_finished_precedence ( int  task_mapped,
int  precedence 
)
pure virtual

Add a new finished precedence to a task.

Parameters
task_mappedID of the task already mapped on the FPGA that has a new finished predecessor
precedenceID of the preceding task

Implemented in Reconfiguration_manager_base.

virtual bool Scheduler_interface::Scheduler_are_tasks_waiting ( void  ) const
pure virtual

Check if there are tasks waiting in the queue.

Returns
true if tasks are waiting to be instantiated

Implemented in Reconfiguration_manager.

virtual void Scheduler_interface::Scheduler_configure_task ( RZ rz,
int  id,
int  implID,
int  requestOwner 
)
pure virtual

Launch task configuration through either HW of SW reconfiguration unit.

Parameters
rzReconfigurable zone (processing element) on which task is configured
idID of the module needing reconfiguration
implIDTaskImplementation ID to replace previous one
requestOwnerID of the module that requested this configuration

Implemented in Reconfiguration_manager_base.

virtual SchedulerRequest& Scheduler_interface::Scheduler_current_task_waiting ( )
pure virtual

Get request with the current task in waiting queue.

brief Get request with the highest priority inside waiting queue return Top request

Returns
request

Implemented in Reconfiguration_manager.

virtual bool Scheduler_interface::Scheduler_exist_rz_properties ( string  inst_name)
pure virtual

test if the RZ properties of the instance exists (Processor or Hw RZ)

Parameters
inst_nameInstance of the processor or default RZ ("RZDefaultGroupName")
Returns
return true if the RZ exists

Implemented in Reconfiguration_manager_base.

virtual bool Scheduler_interface::Scheduler_exist_rz_properties ( RZ rz)
pure virtual

test if the RZ properties of the instance exists (Processor or Hw RZ)

Parameters
rzPointer to the RZ
Returns
return true if the RZ exists

Implemented in Reconfiguration_manager_base.

virtual vector<RZ *> Scheduler_interface::Scheduler_get_all_rz_vector ( void  )
pure virtual

Get the list of all reconfigurable zones used in the architecture.

Returns
Vector of pointers to RZ objects

Implemented in Reconfiguration_manager_base.

virtual Application_interface* Scheduler_interface::Scheduler_get_application_interface ( int  index)
pure virtual

Get the application interface from an index.

Returns
Pointer to application interface

Implemented in Reconfiguration_manager_base.

virtual int Scheduler_interface::Scheduler_get_application_number ( void  )
pure virtual

Get the number of applications.

Returns
number of application

Implemented in Reconfiguration_manager_base.

virtual double Scheduler_interface::Scheduler_get_area_effort ( void  ) const
pure virtual

Get scheduler area effort.

Returns
Area effort

Implemented in Reconfiguration_manager_base.

virtual vector<RZ *> Scheduler_interface::Scheduler_get_compatible_rz_vector ( int  task_id)
pure virtual

Get the list of reconfigurable zones that fit task 'task_id'.

Parameters
task_idTask identifier
Returns
Vector of pointers to RZ objects

Implemented in Reconfiguration_manager_base.

virtual Config_fct_point& Scheduler_interface::Scheduler_get_current_fct_point ( RZ rz)
pure virtual

Get the current fct. point of the RZ (Processor or Hw RZ)

Parameters
rzPointer to the RZ
Returns
Pointer to current fct. point

Implemented in Reconfiguration_manager_base.

virtual int Scheduler_interface::Scheduler_get_current_module_ID ( RZ rz)
pure virtual

Get ID of task currently instantiated on a reconfigurable zone.

Parameters
rzPointer to the reconfigurable zone
Returns
Task ID

Implemented in Reconfiguration_manager_base.

virtual SchedulerRequest& Scheduler_interface::Scheduler_get_element ( int  position)
pure virtual

Get a reference to an element in the queue.

Parameters
positionPosition of the element to retrieve from the queue
Returns
Reference to the scheduler request

Implemented in Reconfiguration_manager.

virtual int Scheduler_interface::Scheduler_get_module_ID ( SchedulerRequest req)
pure virtual

Retrieve task ID associated with shceduler request.

Parameters
reqReference to the SchedulerRequest
Returns
Task ID

Implemented in Reconfiguration_manager_base.

virtual const char* Scheduler_interface::Scheduler_get_name ( void  ) const
pure virtual

Get scheduler instance name.

Returns
char* represnetation of reconfiguration manager name

Implemented in Reconfiguration_manager_base.

virtual ostream& Scheduler_interface::Scheduler_get_output_stream ( void  )
pure virtual

Get output stream.

Returns
Reference to the output stream

Implemented in Reconfiguration_manager_base.

virtual double Scheduler_interface::Scheduler_get_performance_effort ( void  ) const
pure virtual

Get scheduler performance effort.

Returns
Performance effort

Implemented in Reconfiguration_manager_base.

virtual double Scheduler_interface::Scheduler_get_power_effort ( void  ) const
pure virtual

Get scheduler power effort.

Returns
Power effort

Implemented in Reconfiguration_manager_base.

virtual RZ_config& Scheduler_interface::Scheduler_get_rz_properties ( string  inst_name)
pure virtual

Get the RZ properties of the instance (Processor or Hw RZ)

Parameters
inst_nameInstance of the processor or default RZ ("RZDefaultGroupName")
Returns
Pointer to RZ properties

Implemented in Reconfiguration_manager_base.

virtual RZ_config& Scheduler_interface::Scheduler_get_rz_properties ( RZ rz)
pure virtual

Get the RZ properties of the RZ (Processor or Hw RZ)

Parameters
rzPointer to the RZ
Returns
Pointer to RZ properties

Implemented in Reconfiguration_manager_base.

virtual sc_time Scheduler_interface::Scheduler_get_task_running_time ( int  task_id)
pure virtual

Get running time of the task since the last idle state.

Parameters
task_idTask identifier
Returns
running time

Implemented in Reconfiguration_manager_base.

virtual Task_state Scheduler_interface::Scheduler_get_task_state ( int  task_id)
pure virtual

Get task state.

Parameters
task_idID of the task to consider
Returns
Task state

Implemented in Reconfiguration_manager_base.

virtual Task_state Scheduler_interface::Scheduler_get_task_state ( RZ rz)
pure virtual

Get state of the task instantiated on a reconfigurable zone.

Parameters
rzPointer to the RZ to consider
Returns
Task state

Implemented in Reconfiguration_manager_base.

virtual int Scheduler_interface::Scheduler_get_waiting_queue_size ( void  )
pure virtual

Get waiting queue size.

brief Remove highest priority request from the queue

Returns
Waiting queue size

Implemented in Reconfiguration_manager.

virtual bool Scheduler_interface::Scheduler_has_task_already_requested_mapping ( int  task_to_map,
int  request_owner 
)
pure virtual

Check if a task placement has already been demanded by the same predecessor.

Parameters
task_to_mapID of the task which mapping is requested
request_ownerID of the task requiring mapping of the task
Returns
true if a similar request has already been performed

Implemented in Reconfiguration_manager_base.

virtual bool Scheduler_interface::Scheduler_is_RZ_blank ( RZ rz)
pure virtual

Check if RZ is blank or used by a task.

Parameters
rzPointer to the reconfigurable zone
Returns
true if RZ is blank

Implemented in Reconfiguration_manager_base.

virtual bool Scheduler_interface::Scheduler_is_task_preempted ( int  taskid) const
pure virtual

Check if task is preempted.

Parameters
taskidTask to check for preemption

Implemented in Reconfiguration_manager_base.

virtual void Scheduler_interface::Scheduler_notify_request_owner_module_ready ( int  owner,
int  ready 
)
pure virtual

Notify the owner of a request that it has been granted (i.e. the module is instantiated on the FPGA and ready to receive data).

Parameters
ownerRequest owner ID
readyReady module ID

Implemented in Reconfiguration_manager_base.

virtual int Scheduler_interface::Scheduler_position_of_current_element ( void  )
pure virtual

Get position of the current waiting queue element.

Returns
Position

Implemented in Reconfiguration_manager.

virtual void Scheduler_interface::Scheduler_print_finished_precedence_vector ( int  task_id)
pure virtual

Prints the list of finished predecessors for a task.

Parameters
task_idID of the task to consider

Implemented in Reconfiguration_manager_base.

virtual void Scheduler_interface::Scheduler_rerun_task ( SchedulerRequest req)
pure virtual

Changes a task from MAPPED to RUNNING state.

Parameters
Referenceto the scheduler request issuing this state change

Implemented in Reconfiguration_manager_base.

virtual void Scheduler_interface::Scheduler_send_update_parameters_to_module ( RZ rz)
pure virtual

Send parameters to update algorithms.

Parameters
rzPointer to the RZ will be sent to algorithm

Implemented in Reconfiguration_manager_base.

virtual bool Scheduler_interface::Scheduler_set_blank ( int  hosting_rz_id)
pure virtual

Set blank a reconfigurable zone.

Parameters
RZid to consider
Returns
true if possible (no task running on the rz)

Implemented in Reconfiguration_manager_base.

virtual bool Scheduler_interface::Scheduler_set_blank ( RZ rz)
pure virtual

Set blank a reconfigurable zone.

Parameters
rzPointer to the RZ to consider
Returns
true if possible (no task running on the rz)

Implemented in Reconfiguration_manager_base.

virtual void Scheduler_interface::Scheduler_set_current_task ( RZ rz,
int  task_id 
)
pure virtual

Set current task hosted by a reconfigurable zone.

Parameters
rzPointer to the RZ to consider
task_idTask which status changed

Implemented in Reconfiguration_manager_base.

virtual void Scheduler_interface::Scheduler_set_scheduler_active ( int  taskid)
pure virtual

Set scheduler active for task 'taskid'.

Parameters
taskidID of the task being processed

Implemented in Reconfiguration_manager_base.


The documentation for this class was generated from the following file: