Changes between Version 2 and Version 3 of boot_loader


Ignore:
Timestamp:
Nov 5, 2014, 3:43:13 PM (10 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • boot_loader

    v2 v3  
    1414 * SPP : Small Physical Page (4 Kbytes).
    1515There is one SPP and one BPP allocator per cluster containing a physical memory bank.
    16 All the physical memory allocation is done by the boot-loader
     16All the physical memory allocation is done by the boot-loader in the boot phase, and these memory allocators
     17should not be used by the kernel in the execution phase.
     18
    1719=== void '''boot_ptabs_init()''' ===
    1820This function makes the page table initialisation. There is one page table per user application (vspace) defined in the mapping.
    19 All these 
    20  * Proc[0][0][0] MMU activation
    21  * Private vobjs initialisation : ''boot_vobjs_init()''
    22  * Schedulers initialisation : ''boot_schedulers init()''
     21All these pages tables are packed in one segment (seg_ptab) occupying one single big page (2 Mbytes), but this PTAB segment is replicated in all clusters.
     22As the kernel read-only segments (seg_kcode and seg_kinit) are replicated in all clusters to avoid contention, the content of the page tables depends
     23on the cluster-coordinates: for the kernel code, a given virtual address is mapped to different physical addresses, depending on the cluster coordinates.
     24
     25 
     26
     27
     28=== '''boot_schedulers init()''' ===
     29This function makes the schedulers initialisation, as specified in the mapping, with the following principles.
     30 * There is one scheduler per processor.
     31 * Any task defined in any application can be allocated to any processor.
     32 * The allocation of task to processors is fully static (no task migration).
     33 * One single processor cannot schedule more than 14 tasks.
     34 s One scheduler occupies 8 Kbytes. The user
    2335 * Peripherals initialisation : ''boot_peripherals_init()''
    2436 * Kernel & application code loading : ''boot_elf_load()''
     
    2739== __Parallel step__ ==
    2840
    29 The second step is executed in parallel by all processors:
     41This second step is executed in parallel by all processors:
    3042 * CP0_SCHED register initialisation
    3143 * MMU Activation