Changes between Version 59 and Version 60 of WikiStart
- Timestamp:
- Jan 11, 2020, 6:25:58 PM (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WikiStart
v59 v60 13 13 ALMOS-MKH is based on the "Multi-Kernel" approach to ensure scalability, and support the distribution of system services. In this approach, each cluster of the architecture contains an instance of the kernel. Each instance controls the local resources (memory and computing cores). These multiple instances cooperate with each other to give applications the image of a single system controlling all resources. They communicate with each other using both (i) the client / server model, sending a remote procedure call (RPC) to a remote cluster for a complex service, (ii) the shared memory paradigm, making direct access to remote memory when required. 14 14 15 ALMOS-MKH supports both architectures using 64-bits cores, such as the Intel based multi-core servers, or architectures using 32-bits cores, such as the TSAR-Mips32 many-core architecture. 15 The main ALMOS-MKH specific feature is the following: the physical address space is supposed to be distributed between the clusters, and the MSB bits of the physical address are supposed to define the target cluster. In a physical address, the LSB bits contain the '''lpa''' (Local Physical Address), and the MSB bits define the '''cxy''' (Cluster Identifier). The physical address space is therefore described as a two levels array M[cxy][lpa]. To enforce locality, a kernel instance can use a normal pointer '''ptr''' to access the local physical memory. But, to access the physical memory of a remote cluster (cxy), it must use the specific remote access functions ''remote_read(cxy,ptr)'' and ''remote_write(cxy,ptr)'', where ''ptr'' is the local pointer in the target cluster. This (cxy,ptr) couple is called an ''extended pointer''. 16 16 17 The main ALMOS-MKH specific feature is the following: the physical address space is supposed to be distributed between the clusters, and the MSB bits of the physical address are supposed to define the target cluster. In a physical address, the LSB bits contain the '''lpa''' (Local Physical Address), and the MSB bits define the '''cxy''' (Cluster Identifier). The physical address space is therefore described as a two levels array M[cxy][lpa]. To enforce locality, a kernel instance can use a normal pointer '''ptr''' to access the local physical memory. But, to access the physical memory of a remote cluster (cxy), it must use the specific remote access functions ''remote_read(cxy,ptr)'' and ''remote_write(cxy,ptr)'', where ''ptr'' is the local pointer in the target cluster. This (cxy,ptr) couple is called an ''extended pointer''. 17 As mentioned, ALMOS-MKH supports both architectures using 64-bits cores, and architectures using 32-bits cores: 18 18 19 19 * On a typical Intel-based hardware platform containing '''64-bit cores''', the physical address has 44 bits : the 4 MSB bits define the target cluster identifier, and the 40 LSB bits define the local physical address LPA. To avoid contention, the kernel code is replicated in all clusters to define one KCODE physical segment. and ALMOS-MKH uses the '''Instruction MMU''' to map - in each cluster - the local kernel code copy in the kernel virtual space. Regarding the data accesses, each cluster contains one KDATA and one KHEAP physical segments (the KHEAP physical segment contains all local physical memory not occupied by KCODE and KDATA). As the 48 bits virtual address space is large enough to map all these distributed KDATA[cxy] and KHEAP[cxy] segments, they can be all mapped in the kernel virtual space, and the '''Data MMU''' is used to translate both the local and the remote data accesses.