Ignore:
Timestamp:
Aug 13, 2014, 4:34:50 PM (8 years ago)
Author:
cfuguet
Message:

reconfiguration: tsar_generic_iob sc_start() calls optimization

  • sc_start() continue during 'simul_period' cycles
  • 'simul_period' is defined as the debug_period if debug activated or 'stats_period' otherwise
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/reconfiguration/platforms/tsar_generic_iob/arch.py

    r748 r766  
    2020#  - nb_procs       : number of processors per cluster
    2121#
    22 #  The "hidden" platform parameters are:
     22#  The "hidden" parameters (defined below) are:
    2323#  - nb_ttys        : number of TTY channels
    2424#  - nb_nics        : number of NIC channels
     
    4343    nb_ttys           = 1
    4444    nb_nics           = 2
    45     fbf_width         = 1024
     45    fbf_width         = 128
    4646    x_io              = 0
    4747    y_io              = 0
     
    5959
    6060    assert( (x_size == 1) or (x_size == 2) or (x_size == 4)
    61              or (y_size == 8) or (x_size == 16) )
     61             or (x_size == 8) or (x_size == 16) )
    6262
    6363    assert( (y_size == 1) or (y_size == 2) or (y_size == 4)
     
    111111    iob_size  = 0x1000                     # 4 kbytes
    112112
     113
    113114    ### GIET_VM specifics virtual segments
    114 
    115     ### define  bootloader vsegs base addresses
     115    ### define bootloader vsegs base addresses
    116116
    117117    boot_mapping_vbase   = 0x00000000      # ident
    118     boot_mapping_size    = 0x00040000      # 256 Kbytes
    119 
    120     boot_code_vbase      = 0x00040000      # ident
    121     boot_code_size       = 0x00020000      # 128 Kbytes
    122 
    123     boot_data_vbase      = 0x00060000      # ident
    124     boot_data_size       = 0x00010000      # 64 Kbytes
    125 
    126     boot_buffer_vbase    = 0x00070000      # ident
    127     boot_buffer_size     = 0x00060000      # 384 Kbytes
    128 
    129     boot_stack_vbase     = 0x03F00000      # ident
    130     boot_stack_size      = 0x00100000      # 1 Mbytes
    131 
    132     ### define kernel vsegs base addresses
     118    boot_mapping_size    = 0x00080000      # 512 Kbytes
     119
     120    boot_code_vbase      = 0x00080000      # ident
     121    boot_code_size       = 0x00040000      # 256 Kbytes
     122
     123    boot_data_vbase      = 0x000C0000      # ident
     124    boot_data_size       = 0x00080000      # 512 Kbytes
     125
     126    boot_stack_vbase     = 0x00140000      # ident
     127    boot_stack_size      = 0x00050000      # 320 Kbytes
     128
     129    ### define kernel vsegs base addresses and sizes
    133130
    134131    kernel_code_vbase    = 0x80000000
     
    136133
    137134    kernel_data_vbase    = 0x80020000
    138     kernel_data_size     = 0x00060000      # 384 Kbytes
    139 
    140     kernel_uncdata_vbase = 0x80080000
    141     kernel_uncdata_size  = 0x00040000      # 256 Kbytes
    142 
    143     kernel_init_vbase    = 0x800C0000
     135    kernel_data_size     = 0x00020000      # 128 Kbytes
     136
     137    kernel_uncdata_vbase = 0x80040000
     138    kernel_uncdata_size  = 0x00010000      # 64 Kbytes
     139
     140    kernel_init_vbase    = 0x80050000
    144141    kernel_init_size     = 0x00010000      # 64 Kbytes
    145142
    146143    kernel_sched_vbase   = 0xF0000000            # distributed in all clusters
    147     kernel_sched_size    = 0x1000 * nb_procs     # 4 kbytes per processor
     144    kernel_sched_size    = 0x2000 * nb_procs     # 8 kbytes per processor
    148145
    149146    ### create mapping
     
    226223    ### global vsegs for boot_loader / identity mapping
    227224
    228     mapping.addGlobal( 'seg_boot_mapping'  , boot_mapping_vbase  , boot_mapping_size  , 'C_W_',
    229                        vtype = 'BLOB'  , x = 0, y = 0, pseg = 'RAM', identity = True )
    230 
    231     mapping.addGlobal( 'seg_boot_code'     , boot_code_vbase     , boot_code_size     , 'CXW_',
    232                        vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM', identity = True )
    233 
    234     mapping.addGlobal( 'seg_boot_data'     , boot_data_vbase     , boot_data_size     , 'C_W_',
    235                        vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM', identity = True )
    236 
    237     mapping.addGlobal( 'seg_boot_buffer'   , boot_buffer_vbase   , boot_buffer_size   , 'C_W_',
    238                        vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM', identity = True )
    239 
    240     mapping.addGlobal( 'seg_boot_stack'    , boot_stack_vbase    , boot_stack_size    , 'C_W_',
    241                        vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM', identity = True )
    242 
    243     ### global vsegs for kernel
     225    mapping.addGlobal( 'seg_boot_mapping', boot_mapping_vbase, boot_mapping_size,
     226                       'C_W_', vtype = 'BLOB'  , x = 0, y = 0, pseg = 'RAM',
     227                       identity = True )
     228
     229    mapping.addGlobal( 'seg_boot_code', boot_code_vbase, boot_code_size,
     230                       'CXW_', vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM',
     231                       identity = True )
     232
     233    mapping.addGlobal( 'seg_boot_data', boot_data_vbase, boot_data_size,
     234                       'C_W_', vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM',
     235                       identity = True )
     236
     237    mapping.addGlobal( 'seg_boot_stack', boot_stack_vbase, boot_stack_size,
     238                       'C_W_', vtype = 'BUFFER', x = 0, y = 0, pseg = 'RAM',
     239                       identity = True )
     240
     241    ### the code global vsegs for kernel can be replicated in all clusters
     242    ### if the page tables are distributed in all clusters.
    244243
    245244    if distributed_ptabs:
     
    258257        mapping.addGlobal( 'seg_kernel_code', kernel_code_vbase, kernel_code_size,
    259258                           'CXW_', vtype = 'ELF', x = 0 , y = 0 , pseg = 'RAM',
    260                            binpath = 'build/kernel/kernel.elf' )
     259                           binpath = 'build/kernel/kernel.elf', local = False )
    261260
    262261        mapping.addGlobal( 'seg_kernel_init', kernel_init_vbase, kernel_init_size,
    263262                           'CXW_', vtype = 'ELF', x = 0 , y = 0 , pseg = 'RAM',
    264                            binpath = 'build/kernel/kernel.elf' )
    265 
    266     mapping.addGlobal( 'seg_kernel_data'   , kernel_data_vbase   , kernel_data_size   , 'C_W_',
    267                        vtype = 'ELF'   , x = 0, y = 0, pseg = 'RAM', binpath = 'build/kernel/kernel.elf' )
    268 
    269     mapping.addGlobal( 'seg_kernel_uncdata', kernel_uncdata_vbase, kernel_uncdata_size, '__W_',
    270                        vtype = 'ELF'   , x = 0, y = 0, pseg = 'RAM', binpath = 'build/kernel/kernel.elf' )
     263                           binpath = 'build/kernel/kernel.elf', local = False )
     264
     265    ### shared global vsegs for kernel
     266
     267    mapping.addGlobal( 'seg_kernel_data', kernel_data_vbase, kernel_data_size,
     268                       'C_W_', vtype = 'ELF', x = 0, y = 0, pseg = 'RAM',
     269                       binpath = 'build/kernel/kernel.elf', local = False )
     270
     271    mapping.addGlobal( 'seg_kernel_uncdata', kernel_uncdata_vbase, kernel_uncdata_size,
     272                       '__W_', vtype = 'ELF', x = 0, y = 0, pseg = 'RAM',
     273                       binpath = 'build/kernel/kernel.elf', local = False )
    271274
    272275    ### global vsegs for external peripherals / identity mapping
    273276
    274277    mapping.addGlobal( 'seg_iob', iob_base, iob_size, '__W_',
    275                        vtype = 'PERI', x = 0, y = 0, pseg = 'IOB', identity = True )
     278                       vtype = 'PERI', x = 0, y = 0, pseg = 'IOB',
     279                       identity = True )
    276280
    277281    mapping.addGlobal( 'seg_bdv', bdv_base, bdv_size, '__W_',
    278                        vtype = 'PERI', x = 0, y = 0, pseg = 'BDV', identity = True )
     282                       vtype = 'PERI', x = 0, y = 0, pseg = 'BDV',
     283                       identity = True )
    279284
    280285    mapping.addGlobal( 'seg_tty', tty_base, tty_size, '__W_',
    281                        vtype = 'PERI', x = 0, y = 0, pseg = 'TTY', identity = True )
     286                       vtype = 'PERI', x = 0, y = 0, pseg = 'TTY',
     287                       identity = True )
    282288
    283289    mapping.addGlobal( 'seg_nic', nic_base, nic_size, '__W_',
    284                        vtype = 'PERI', x = 0, y = 0, pseg = 'NIC', identity = True )
     290                       vtype = 'PERI', x = 0, y = 0, pseg = 'NIC',
     291                       identity = True )
    285292
    286293    mapping.addGlobal( 'seg_cma', cma_base, cma_size, '__W_',
    287                        vtype = 'PERI', x = 0, y = 0, pseg = 'CMA', identity = True )
     294                       vtype = 'PERI', x = 0, y = 0, pseg = 'CMA',
     295                       identity = True )
    288296
    289297    mapping.addGlobal( 'seg_fbf', fbf_base, fbf_size, '__W_',
    290                        vtype = 'PERI', x = 0, y = 0, pseg = 'FBF', identity = True )
     298                       vtype = 'PERI', x = 0, y = 0, pseg = 'FBF',
     299                       identity = True )
    291300
    292301    mapping.addGlobal( 'seg_pic', pic_base, pic_size, '__W_',
    293                        vtype = 'PERI', x = 0, y = 0, pseg = 'PIC', identity = True )
     302                       vtype = 'PERI', x = 0, y = 0, pseg = 'PIC',
     303                       identity = True )
     304
    294305
    295306    ### global vsegs for internal peripherals, and for schedulers
Note: See TracChangeset for help on using the changeset viewer.