Ignore:
Timestamp:
Mar 9, 2011, 4:11:43 PM (13 years ago)
Author:
kane
Message:

yAjout du multi_cache : plusieurs processeur peuvent ce partager le même cache L1.
2 remarques, (1) deux nouveaux paramètres : nb_cpu, nb_cache. Pour avoir un cache dont le comportement est identique à la version d'avant, mettre ces paramètres à 1.
(2) le port d'interruption est maintenant un tableau dépendant du nombre de processeur.
Voir le fichier "platforms/caba-ring-ccxcachev4_memcachev4-mips32el/top.cpp" pour plus de détails.

--Cette ligne, et les suivantes ci-dessous, seront ignorées--

M platforms/tsarv4_dspin_generic_32/tsarv4_dspin_generic_32_top.cpp
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/segmentation.h
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/top.cpp
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/configuration/default.cfg
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/configuration/gen_config.sh
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/soft/dhrystone/dhry21a.c
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/soft/define.h
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/soft/matrix_multiplication/matrix_multiplication.c
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/soft/common/common.c
A platforms/caba-ring-ccxcachev4_memcachev4-mips32el/soft/self_code_modifying
A platforms/caba-ring-ccxcachev4_memcachev4-mips32el/soft/self_code_modifying/self_code_modifying.c
A platforms/caba-ring-ccxcachev4_memcachev4-mips32el/soft/self_code_modifying/self_code_modifying.h
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/soft/benchmark/benchmark.h
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/soft/benchmark/benchmark_sort.c
A platforms/caba-ring-ccxcachev4_memcachev4-mips32el/soft/benchmark/benchmark_self_code_modifying.c
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/soft/benchmark/benchmark.c
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/soft/benchmark/benchmark_matrix_multiplication.c
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/soft/Makefile
M platforms/caba-ring-ccxcachev4_memcachev4-mips32el/Makefile
M platforms/tsarv4_vgmn_generic_32/tsarv4_vgmn_generic_32_top.cpp
M modules/vci_cc_xcache_wrapper_v4/caba/source/include/vci_cc_xcache_wrapper_v4.h
M modules/vci_cc_xcache_wrapper_v4/caba/source/src/vci_cc_xcache_wrapper_v4.cpp
M modules/vci_mem_cache_v4/caba/source/include/vci_mem_cache_v4.h
M modules/vci_mem_cache_v4/caba/source/include/mem_cache_directory_v4.h
M modules/vci_mem_cache_v4/caba/source/src/vci_mem_cache_v4.cpp

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/caba-ring-ccxcachev4_memcachev4-mips32el/configuration/gen_config.sh

    r134 r140  
    11#!/bin/bash
    22
    3 #               archi1  archi2  archi3  archi4
    4 archi_name=(    "00512" "16384" "01024" "02048");
    5 iways=(         "1"     "4"     "16"    "4"    );
    6 isets=(         "8"     "64"    "1"     "8"    );
    7 iwords=(        "16"    "16"    "16"    "16"   );
    8 dways=(         "1"     "4"     "16"    "4"    );
    9 dsets=(         "8"     "64"    "1"     "8"    );
    10 dwords=(        "16"    "16"    "16"    "16"   );
    11 memc_nways=(    "4"     "16"    "8"     "2"    );
    12 memc_nsets=(    "4"     "256"   "64"    "32"   );
    13 memc_words=(    "16"    "16"    "16"    "16"   );
    14 memc_heap_size=("4096"  "4096"  "4096"  "4096" );
     3#               archi1  archi2  archi3       archi4  archi5
     4archi_name=(    "min"   "tsar"  "full_assoc" "2k"    "4k"   );
     5iways=(         "1"     "4"     "16"         "4"     "4"    );
     6isets=(         "8"     "64"    "1"          "8"     "16"   );
     7iwords=(        "16"    "16"    "16"         "16"    "16"   );
     8dways=(         "1"     "4"     "16"         "4"     "4"    );
     9dsets=(         "8"     "64"    "1"          "8"     "16"   );
     10dwords=(        "16"    "16"    "16"         "16"    "16"   );
     11memc_nways=(    "4"     "16"    "8"          "2"     "16"   );
     12memc_nsets=(    "4"     "256"   "64"         "32"    "64"   );
     13memc_words=(    "16"    "16"    "16"         "16"    "16"   );
     14memc_heap_size=("4096"  "4096"  "4096"       "4096"  "4096" );
    1515
    16 nb_proc=( "1" "15" "+1" "4");
    17 wnwords=( "1" "16" "*2" "8");
    18 wnlines=( "1" "8"  "*2" "8");
    19 wtimeout=("1" "1024" "*4" "16");
     16nb_proc=(        "1" "15"   "+1" "4");
     17nb_cpu_by_cache=("1" "15"   "*2" "1");
     18nb_cache=(       "1" "16"   "*2" "1");
     19#wnwords=(        "1" "16"   "*2" "4");
     20#wnlines=(        "1" "8"    "*2" "8");
     21#wtimeout=(       "1" "1024" "*4" "16");
     22
     23wnwords=(        "4"  "4"  "*2" "4");
     24wnlines=(        "8"  "8"  "*2" "8");
     25wtimeout=(       "16" "16" "*4" "16");
    2026
    2127archi_default="1";
     28gen_cfg=0;
    2229
    2330function gen_file ()
    2431{
    25         filename=$(printf "x%.2d-xcache_%s-wbuf_%.2d_%.2d_%.4d.cfg" ${1} ${archi_name[${2}]} ${3} ${4} ${5});
     32        filename=$(printf "archi_%s-x%.2d_%.2d_%.2d-wbuf_%.2d_%.2d_%.4d.cfg" ${archi_name[${4}]} ${1} ${2} ${3} ${5} ${6} ${7});
    2633
    2734        echo ${filename};
    2835
    29         echo "${1}" > ${filename};
    30         echo "${iways[${2}]} ${isets[${2}]} ${iwords[${2}]}" >> ${filename};
    31         echo "${dways[${2}]} ${dsets[${2}]} ${dwords[${2}]}" >> ${filename};
    32         echo "${3} ${4} ${5}" >> ${filename};
    33         echo "${memc_nways[${2}]} ${memc_nsets[${2}]} ${memc_words[${2}]} ${memc_heap_size[${2}]}" >> ${filename};
     36        echo "${1}" >  ${filename};
     37        echo "${2} ${3}" >> ${filename};
     38        echo "${iways[${4}]} ${isets[${4}]} ${iwords[${4}]}" >> ${filename};
     39        echo "${dways[${4}]} ${dsets[${4}]} ${dwords[${4}]}" >> ${filename};
     40        echo "${5} ${6} ${7}" >> ${filename};
     41        echo "${memc_nways[${4}]} ${memc_nsets[${4}]} ${memc_words[${4}]} ${memc_heap_size[${4}]}" >> ${filename};
    3442}
    3543
     
    4149        echo ${filename};
    4250
    43         echo "${nb_proc[3]}" > ${filename};
     51        echo "${nb_proc[3]}"  >  ${filename};
     52        echo "${nb_cpu_by_cache[3]} ${nb_cache[3]}" >> ${filename};
    4453        echo "${iways[${archi}]} ${isets[${archi}]} ${iwords[${archi}]}" >> ${filename};
    4554        echo "${dways[${archi}]} ${dsets[${archi}]} ${dwords[${archi}]}" >> ${filename};
     
    5059gen_default ${archi_default};
    5160
    52 nb_archi=${#iways[*]};
     61if test ${gen_cfg} -ne 0; then
     62    nb_archi=${#iways[*]};
     63   
     64    num_archi=0;
     65    while test ${num_archi} -lt ${nb_archi}; do
     66        num_proc=${nb_proc[0]};
     67        while test ${num_proc} -le ${nb_proc[1]}; do
     68            num_cpu_by_cache=${nb_cpu_by_cache[0]};
     69            while test ${num_cpu_by_cache} -le ${nb_cpu_by_cache[1]}; do
    5370
    54 num_archi=0;
    55 while test ${num_archi} -lt ${nb_archi}; do
    56     num_proc=${nb_proc[0]};
    57     while test ${num_proc} -le ${nb_proc[1]}; do
    58         num_words=${wnwords[0]};
    59         while test ${num_words} -le ${wnwords[1]}; do
    60             num_lines=${wnlines[0]};
    61             while test ${num_lines} -le ${wnlines[1]}; do
    62                 num_timeout=${wtimeout[0]};
    63                 while test ${num_timeout} -le ${wtimeout[1]}; do
     71                if test $((${num_proc} * ${num_cpu_by_cache})) -le ${nb_cpu_by_cache[1]}; then
    6472
    65                     gen_file ${num_proc} ${num_archi} ${num_words} ${num_lines} ${num_timeout};
     73                num_cache=${nb_cache[0]};
     74                while test ${num_cache} -le ${nb_cache[1]}; do
     75               
     76                    if test ${num_cache} -ge ${num_cpu_by_cache}; then
     77                    if test ${num_cpu_by_cache} -ne 1 -o ${num_cache} -eq 1; then
    6678
    67                     num_timeout=$((${num_timeout} ${wtimeout[2]}));
     79                    num_words=${wnwords[0]};
     80                    while test ${num_words} -le ${wnwords[1]}; do
     81                        num_lines=${wnlines[0]};
     82                        while test ${num_lines} -le ${wnlines[1]}; do
     83                            num_timeout=${wtimeout[0]};
     84                            while test ${num_timeout} -le ${wtimeout[1]}; do
     85                               
     86                                gen_file ${num_proc} ${num_cpu_by_cache} ${num_cache} ${num_archi} ${num_words} ${num_lines} ${num_timeout};
     87                               
     88                                num_timeout=$((${num_timeout} ${wtimeout[2]}));
     89                            done;
     90                            num_lines=$((${num_lines} ${wnlines[2]}));
     91                        done;
     92                        num_words=$((${num_words} ${wnwords[2]}));
     93                    done;
     94                    fi;
     95                    fi;
     96                    num_cache=$((${num_cache} ${nb_cache[2]}));
    6897                done;
    69                 num_lines=$((${num_lines} ${wnlines[2]}));
     98                fi;
     99                num_cpu_by_cache=$((${num_cpu_by_cache} ${nb_cpu_by_cache[2]}));
    70100            done;
    71             num_words=$((${num_words} ${wnwords[2]}));
     101            num_proc=$((${num_proc} ${nb_proc[2]}));
    72102        done;
    73         num_proc=$((${num_proc} ${nb_proc[2]}));
     103        num_archi=$((${num_archi}+1));
    74104    done;
    75     num_archi=$((${num_archi}+1));
    76 done;
     105fi;
    77106
    78 
Note: See TracChangeset for help on using the changeset viewer.