Changes between Version 2 and Version 3 of boot_loader
- Timestamp:
- Nov 5, 2014, 3:43:13 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
boot_loader
v2 v3 14 14 * SPP : Small Physical Page (4 Kbytes). 15 15 There 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 16 All the physical memory allocation is done by the boot-loader in the boot phase, and these memory allocators 17 should not be used by the kernel in the execution phase. 18 17 19 === void '''boot_ptabs_init()''' === 18 20 This 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()'' 21 All 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. 22 As 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 23 on 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()''' === 29 This 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 23 35 * Peripherals initialisation : ''boot_peripherals_init()'' 24 36 * Kernel & application code loading : ''boot_elf_load()'' … … 27 39 == __Parallel step__ == 28 40 29 Th esecond step is executed in parallel by all processors:41 This second step is executed in parallel by all processors: 30 42 * CP0_SCHED register initialisation 31 43 * MMU Activation