Ignore:
Timestamp:
Jan 19, 2008, 12:09:01 PM (16 years ago)
Author:
rosiere
Message:

Modification of Statisctics
Add a new systemC component : Load_Store_Queue (tested with one benchmark and one configuration). Store don't supported the Data Buss Error (Load is supported)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Constants.h

    r62 r71  
    1111
    1212  //-------------------------------------------------------[ Memory ]-----
     13#define OPERATION_MEMORY_LOAD                    0x0      // 000_0000
    1314#define OPERATION_MEMORY_LOAD_8_Z                0x0      // 000_0000
    1415#define OPERATION_MEMORY_LOAD_16_Z               0x20     // 010_0000
     
    5556         (x == OPERATION_MEMORY_STORE_HEAD_KO))
    5657
     58#define is_operation_memory_load_signed(x)      \
     59        ((x == OPERATION_MEMORY_LOAD_8_S ) or   \
     60         (x == OPERATION_MEMORY_LOAD_16_S) or   \
     61         (x == OPERATION_MEMORY_LOAD_32_S) or   \
     62         (x == OPERATION_MEMORY_LOAD_64_S) )
     63
    5764#define MEMORY_ACCESS_8                          0x0
    5865#define MEMORY_ACCESS_16                         0x1
     
    6067#define MEMORY_ACCESS_64                         0x3
    6168
     69#define MEMORY_SIZE_8                            8
     70#define MEMORY_SIZE_16                           16
     71#define MEMORY_SIZE_32                           32
     72#define MEMORY_SIZE_64                           64
     73
    6274#define MASK_MEMORY_ACCESS_8                     0x0
    6375#define MASK_MEMORY_ACCESS_16                    0x1
    6476#define MASK_MEMORY_ACCESS_32                    0x3
    6577#define MASK_MEMORY_ACCESS_64                    0x7
     78
     79#define memory_size(x)                                                           \
     80        (((x==OPERATION_MEMORY_LOAD_16_Z)or                                      \
     81           (x==OPERATION_MEMORY_LOAD_16_S)or                                     \
     82           (x==OPERATION_MEMORY_STORE_16 ))?MEMORY_SIZE_16:                      \
     83          (((x==OPERATION_MEMORY_LOAD_32_Z)or                                    \
     84            (x==OPERATION_MEMORY_LOAD_32_S)or                                    \
     85            (x==OPERATION_MEMORY_STORE_32 ))?MEMORY_SIZE_32:                     \
     86           (((x==OPERATION_MEMORY_LOAD_64_Z)or                                   \
     87             (x==OPERATION_MEMORY_LOAD_64_S)or                                   \
     88             (x==OPERATION_MEMORY_STORE_64 ))?MEMORY_SIZE_64:MEMORY_SIZE_8)))
    6689
    6790#define memory_access(x)                                                         \
     
    86109             (x==OPERATION_MEMORY_LOAD_64_S)or                                   \
    87110             (x==OPERATION_MEMORY_STORE_64 ))?MASK_MEMORY_ACCESS_64:MASK_MEMORY_ACCESS_8)))
    88 
    89111   
    90112  //====================================================[ Exception ]=====
     
    131153#define EXCEPTION_MEMORY_BUS_ERROR               0x4  // Access at a invalid physical address
    132154#define EXCEPTION_MEMORY_MISS_SPECULATION        0x5  // Load miss speculation
     155#define EXCEPTION_MEMORY_LOAD_SPECULATIVE        0x6  // The load is speculative : write in register file, but don't commit
    133156
    134157  //==================================================[ dcache_type ]=====
    135 #  define DCACHE_LOAD                    0x0      // 0000
    136 #  define DCACHE_LOCK                    0x1      // 0001
    137 #  define DCACHE_INVALIDATE              0x2      // 0010
    138 #  define DCACHE_PREFETCH                0x3      // 0011
    139 //#define DCACHE_                        0x4      // 0100
    140 //#define DCACHE_                        0x5      // 0101
    141 #  define DCACHE_FLUSH                   0x6      // 0110
    142 #  define DCACHE_SYNCHRONIZATION         0x7      // 0111
    143 
    144 #  define DCACHE_STORE_8                 0x8      // 1000
    145 #  define DCACHE_STORE_16                0x9      // 1001
    146 #  define DCACHE_STORE_32                0xa      // 1010
    147 #  define DCACHE_STORE_64                0xb      // 1011
    148 //#define DCACHE_                        0xc      // 1100
    149 //#define DCACHE_                        0xd      // 1101
    150 //#define DCACHE_                        0xe      // 1110
    151 //#define DCACHE_                        0xf      // 1111
     158#  define DCACHE_LOAD                    0x0 // 0000
     159#  define DCACHE_LOCK                    0x1 // 0001
     160#  define DCACHE_INVALIDATE              0x2 // 0010
     161#  define DCACHE_PREFETCH                0x3 // 0011
     162//#define DCACHE_                        0x4 // 0100
     163//#define DCACHE_                        0x5 // 0101
     164#  define DCACHE_FLUSH                   0x6 // 0110
     165#  define DCACHE_SYNCHRONIZATION         0x7 // 0111
     166#  define DCACHE_STORE_8                 0x8 // 1000
     167#  define DCACHE_STORE_16                0x9 // 1001
     168#  define DCACHE_STORE_32                0xa // 1010
     169#  define DCACHE_STORE_64                0xb // 1011
     170//#define DCACHE_                        0xc // 1100
     171//#define DCACHE_                        0xd // 1101
     172//#define DCACHE_                        0xe // 1110
     173//#define DCACHE_                        0xf // 1111
    152174
    153175
Note: See TracChangeset for help on using the changeset viewer.