Ignore:
Timestamp:
Mar 18, 2009, 11:36:26 PM (15 years ago)
Author:
rosiere
Message:

1) Stat_list : fix retire old and new register bug
2) Stat_list : remove read_counter and valid flag, because validation of destination is in retire step (not in commit step)
3) Model : add class Model (cf Morpheo.sim)
4) Allocation : alloc_interface_begin and alloc_interface_end to delete temporary array.
5) Script : add distexe.sh
6) Add Comparator, Multiplier, Divider. But this component are not implemented
7) Software : add Dhrystone

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_deallocation.cpp

    r88 r112  
    1111
    1212#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h"
     13#include "Behavioural/include/Allocation.h"
    1314
    1415namespace morpheo                    {
     
    3031    if (usage_is_set(_usage,USE_SYSTEMC))
    3132      {
    32     delete     in_CLOCK ;
    33     delete     in_NRESET;
     33        delete     in_CLOCK ;
     34        delete     in_NRESET;
    3435
    35     delete     in_INSERT_VAL           ;
    36     delete    out_INSERT_ACK           ;
    37     if (_param->_have_port_context_id)
    38     delete     in_INSERT_CONTEXT_ID    ;
    39     if (_param->_have_port_front_end_id)
    40     delete     in_INSERT_FRONT_END_ID  ;
    41     if (_param->_have_port_ooo_engine_id)
    42     delete     in_INSERT_OOO_ENGINE_ID ;
    43     if (_param->_have_port_rob_ptr)
    44     delete     in_INSERT_ROB_ID        ;
    45     delete     in_INSERT_OPERATION     ;
    46     delete     in_INSERT_TYPE          ;
    47     delete     in_INSERT_STORE_QUEUE_PTR_WRITE;
    48     if (_param->_have_port_load_queue_ptr)
    49     delete     in_INSERT_LOAD_QUEUE_PTR_WRITE ;
    50     delete     in_INSERT_HAS_IMMEDIAT  ;
    51     delete     in_INSERT_IMMEDIAT      ;
    52 //  delete     in_INSERT_READ_RA       ;
    53     delete     in_INSERT_NUM_REG_RA    ;
    54     delete     in_INSERT_DATA_RA_VAL   ;
    55     delete     in_INSERT_DATA_RA       ;
    56 //  delete     in_INSERT_READ_RB       ;
    57     delete     in_INSERT_NUM_REG_RB    ;
    58     delete     in_INSERT_DATA_RB_VAL   ;
    59     delete     in_INSERT_DATA_RB       ;
    60 //  delete     in_INSERT_READ_RC       ;
    61     delete     in_INSERT_NUM_REG_RC    ;
    62     delete     in_INSERT_DATA_RC_VAL   ;
    63     delete     in_INSERT_DATA_RC       ;
    64     delete     in_INSERT_WRITE_RD      ;
    65     delete     in_INSERT_NUM_REG_RD    ;
    66     delete     in_INSERT_WRITE_RE      ;
    67     delete     in_INSERT_NUM_REG_RE    ;
    68    
    69     delete [] out_RETIRE_VAL           ;
    70     delete []  in_RETIRE_ACK           ;
    71     if (_param->_have_port_context_id)
    72     delete [] out_RETIRE_CONTEXT_ID    ;
    73     if (_param->_have_port_front_end_id)
    74     delete [] out_RETIRE_FRONT_END_ID  ;
    75     if (_param->_have_port_ooo_engine_id)
    76     delete [] out_RETIRE_OOO_ENGINE_ID ;
    77     if (_param->_have_port_rob_ptr)
    78     delete [] out_RETIRE_ROB_ID        ;
    79     delete [] out_RETIRE_OPERATION     ;
    80     delete [] out_RETIRE_TYPE          ;
    81     delete [] out_RETIRE_STORE_QUEUE_PTR_WRITE;
    82     if (_param->_have_port_load_queue_ptr)
    83     delete [] out_RETIRE_LOAD_QUEUE_PTR_WRITE ;
    84     delete [] out_RETIRE_HAS_IMMEDIAT  ;
    85     delete [] out_RETIRE_IMMEDIAT      ;
    86     delete [] out_RETIRE_DATA_RA       ;
    87     delete [] out_RETIRE_DATA_RB       ;
    88     delete [] out_RETIRE_DATA_RC       ;
    89     delete [] out_RETIRE_WRITE_RD      ;
    90     delete [] out_RETIRE_NUM_REG_RD    ;
    91     delete [] out_RETIRE_WRITE_RE      ;
    92     delete [] out_RETIRE_NUM_REG_RE    ;
    93    
    94     delete []  in_GPR_WRITE_VAL         ;
    95     if (_param->_have_port_ooo_engine_id)
    96     delete []  in_GPR_WRITE_OOO_ENGINE_ID;
    97     delete []  in_GPR_WRITE_NUM_REG     ;
    98     delete []  in_GPR_WRITE_DATA        ;
    99    
    100     delete []  in_SPR_WRITE_VAL       ;
    101     if (_param->_have_port_ooo_engine_id)
    102     delete []  in_SPR_WRITE_OOO_ENGINE_ID;
    103     delete []  in_SPR_WRITE_NUM_REG   ;
    104     delete []  in_SPR_WRITE_DATA      ;
    105    
    106     if (_param->_have_port_ooo_engine_id)
    107     delete []  in_BYPASS_WRITE_OOO_ENGINE_ID;
    108     delete []  in_BYPASS_WRITE_GPR_VAL    ;
    109     delete []  in_BYPASS_WRITE_GPR_NUM_REG;
    110     delete []  in_BYPASS_WRITE_GPR_DATA   ;
    111     delete []  in_BYPASS_WRITE_SPR_VAL    ;
    112     delete []  in_BYPASS_WRITE_SPR_NUM_REG;
    113     delete []  in_BYPASS_WRITE_SPR_DATA   ;
    114    
    115     delete []  in_BYPASS_MEMORY_VAL       ;
    116     if (_param->_have_port_ooo_engine_id)
    117     delete []  in_BYPASS_MEMORY_OOO_ENGINE_ID;
    118     delete []  in_BYPASS_MEMORY_NUM_REG   ;
    119     delete []  in_BYPASS_MEMORY_DATA      ;
    120    
    121     // ~~~~~[ internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    122     delete []  internal_RETIRE_VAL;
    123     delete []  internal_RETIRE_SLOT;
     36        DELETE0_SIGNAL( in_INSERT_VAL                  ,1);
     37        DELETE0_SIGNAL(out_INSERT_ACK                  ,1);
     38        DELETE0_SIGNAL( in_INSERT_CONTEXT_ID           ,_param->_size_context_id      );
     39        DELETE0_SIGNAL( in_INSERT_FRONT_END_ID         ,_param->_size_front_end_id    );
     40        DELETE0_SIGNAL( in_INSERT_OOO_ENGINE_ID        ,_param->_size_ooo_engine_id   );
     41        DELETE0_SIGNAL( in_INSERT_ROB_ID               ,_param->_size_rob_ptr         );
     42        DELETE0_SIGNAL( in_INSERT_OPERATION            ,_param->_size_operation       );
     43        DELETE0_SIGNAL( in_INSERT_TYPE                 ,_param->_size_type            );
     44        DELETE0_SIGNAL( in_INSERT_STORE_QUEUE_PTR_WRITE,_param->_size_store_queue_ptr );
     45        DELETE0_SIGNAL( in_INSERT_LOAD_QUEUE_PTR_WRITE ,_param->_size_load_queue_ptr  );
     46        DELETE0_SIGNAL( in_INSERT_HAS_IMMEDIAT         ,1                             );
     47        DELETE0_SIGNAL( in_INSERT_IMMEDIAT             ,_param->_size_general_data    );
     48//      DELETE0_SIGNAL( in_INSERT_READ_RA              ,1                             );
     49        DELETE0_SIGNAL( in_INSERT_NUM_REG_RA           ,_param->_size_general_register);
     50        DELETE0_SIGNAL( in_INSERT_DATA_RA_VAL          ,1                             );
     51        DELETE0_SIGNAL( in_INSERT_DATA_RA              ,_param->_size_general_data    );
     52//      DELETE0_SIGNAL( in_INSERT_READ_RB              ,1                             );
     53        DELETE0_SIGNAL( in_INSERT_NUM_REG_RB           ,_param->_size_general_register);
     54        DELETE0_SIGNAL( in_INSERT_DATA_RB_VAL          ,1                             );
     55        DELETE0_SIGNAL( in_INSERT_DATA_RB              ,_param->_size_general_data    );
     56//      DELETE0_SIGNAL( in_INSERT_READ_RC              ,1                             );
     57        DELETE0_SIGNAL( in_INSERT_NUM_REG_RC           ,_param->_size_special_register);
     58        DELETE0_SIGNAL( in_INSERT_DATA_RC_VAL          ,1                             );
     59        DELETE0_SIGNAL( in_INSERT_DATA_RC              ,_param->_size_special_data    );
     60        DELETE0_SIGNAL( in_INSERT_WRITE_RD             ,1                             );
     61        DELETE0_SIGNAL( in_INSERT_NUM_REG_RD           ,_param->_size_general_register);
     62        DELETE0_SIGNAL( in_INSERT_WRITE_RE             ,1                             );
     63        DELETE0_SIGNAL( in_INSERT_NUM_REG_RE           ,_param->_size_special_register);
     64       
     65        DELETE1_SIGNAL(out_RETIRE_VAL                  ,_param->_nb_inst_retire,1);
     66        DELETE1_SIGNAL( in_RETIRE_ACK                  ,_param->_nb_inst_retire,1);
     67        DELETE1_SIGNAL(out_RETIRE_CONTEXT_ID           ,_param->_nb_inst_retire,_param->_size_context_id);
     68        DELETE1_SIGNAL(out_RETIRE_FRONT_END_ID         ,_param->_nb_inst_retire,_param->_size_front_end_id);
     69        DELETE1_SIGNAL(out_RETIRE_OOO_ENGINE_ID        ,_param->_nb_inst_retire,_param->_size_ooo_engine_id);
     70        DELETE1_SIGNAL(out_RETIRE_ROB_ID               ,_param->_nb_inst_retire,_param->_size_rob_ptr);
     71        DELETE1_SIGNAL(out_RETIRE_OPERATION            ,_param->_nb_inst_retire,_param->_size_operation);
     72        DELETE1_SIGNAL(out_RETIRE_TYPE                 ,_param->_nb_inst_retire,_param->_size_type);
     73        DELETE1_SIGNAL(out_RETIRE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_retire,_param->_size_store_queue_ptr);
     74        DELETE1_SIGNAL(out_RETIRE_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_retire,_param->_size_load_queue_ptr );
     75        DELETE1_SIGNAL(out_RETIRE_HAS_IMMEDIAT         ,_param->_nb_inst_retire,1);
     76        DELETE1_SIGNAL(out_RETIRE_IMMEDIAT             ,_param->_nb_inst_retire,_param->_size_general_data);
     77        DELETE1_SIGNAL(out_RETIRE_DATA_RA              ,_param->_nb_inst_retire,_param->_size_general_data);
     78        DELETE1_SIGNAL(out_RETIRE_DATA_RB              ,_param->_nb_inst_retire,_param->_size_general_data);
     79        DELETE1_SIGNAL(out_RETIRE_DATA_RC              ,_param->_nb_inst_retire,_param->_size_special_data);
     80        DELETE1_SIGNAL(out_RETIRE_WRITE_RD             ,_param->_nb_inst_retire,1);
     81        DELETE1_SIGNAL(out_RETIRE_NUM_REG_RD           ,_param->_nb_inst_retire,_param->_size_general_register);
     82        DELETE1_SIGNAL(out_RETIRE_WRITE_RE             ,_param->_nb_inst_retire,1);
     83        DELETE1_SIGNAL(out_RETIRE_NUM_REG_RE           ,_param->_nb_inst_retire,_param->_size_special_register);
     84       
     85        DELETE1_SIGNAL( in_GPR_WRITE_VAL          ,_param->_nb_gpr_write,1);
     86        DELETE1_SIGNAL( in_GPR_WRITE_OOO_ENGINE_ID,_param->_nb_gpr_write,_param->_size_ooo_engine_id);
     87        DELETE1_SIGNAL( in_GPR_WRITE_NUM_REG      ,_param->_nb_gpr_write,_param->_size_general_register);
     88        DELETE1_SIGNAL( in_GPR_WRITE_DATA         ,_param->_nb_gpr_write,_param->_size_general_data);
     89       
     90        DELETE1_SIGNAL( in_SPR_WRITE_VAL          ,_param->_nb_spr_write,1);
     91        DELETE1_SIGNAL( in_SPR_WRITE_OOO_ENGINE_ID,_param->_nb_spr_write,_param->_size_ooo_engine_id);
     92        DELETE1_SIGNAL( in_SPR_WRITE_NUM_REG      ,_param->_nb_spr_write,_param->_size_general_register);
     93        DELETE1_SIGNAL( in_SPR_WRITE_DATA         ,_param->_nb_spr_write,_param->_size_general_data);
     94       
     95        DELETE1_SIGNAL( in_BYPASS_WRITE_OOO_ENGINE_ID,_param->_nb_bypass_write,_param->_size_ooo_engine_id);
     96        DELETE1_SIGNAL( in_BYPASS_WRITE_GPR_VAL      ,_param->_nb_bypass_write,1);
     97        DELETE1_SIGNAL( in_BYPASS_WRITE_GPR_NUM_REG  ,_param->_nb_bypass_write,_param->_size_general_register);
     98        DELETE1_SIGNAL( in_BYPASS_WRITE_GPR_DATA     ,_param->_nb_bypass_write,_param->_size_general_data);
     99        DELETE1_SIGNAL( in_BYPASS_WRITE_SPR_VAL      ,_param->_nb_bypass_write,1);
     100        DELETE1_SIGNAL( in_BYPASS_WRITE_SPR_NUM_REG  ,_param->_nb_bypass_write,_param->_size_special_register);
     101        DELETE1_SIGNAL( in_BYPASS_WRITE_SPR_DATA     ,_param->_nb_bypass_write,_param->_size_special_data);
     102       
     103        DELETE1_SIGNAL( in_BYPASS_MEMORY_VAL          ,_param->_nb_bypass_memory,1);
     104        DELETE1_SIGNAL( in_BYPASS_MEMORY_OOO_ENGINE_ID,_param->_nb_bypass_memory,_param->_size_ooo_engine_id);
     105        DELETE1_SIGNAL( in_BYPASS_MEMORY_NUM_REG      ,_param->_nb_bypass_memory,_param->_size_general_register);
     106        DELETE1_SIGNAL( in_BYPASS_MEMORY_DATA         ,_param->_nb_bypass_memory,_param->_size_general_data);
     107       
     108        DELETE1(internal_RETIRE_VAL ,_param->_nb_inst_retire);
     109        DELETE1(internal_RETIRE_SLOT,_param->_nb_inst_retire);
    124110      }
     111
    125112    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    126113
Note: See TracChangeset for help on using the changeset viewer.