Changes between Version 52 and Version 53 of WikiStart


Ignore:
Timestamp:
Mar 8, 2019, 5:35:20 PM (7 months ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v52 v53  
    1313ALMOS-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 to a remote cluster for a complex service, (ii) the shared memory paradigm, making direct access to remote memory when required.
    1414
    15 To reduce energy consumption, ALMOS-MKH supports architectures using 32-bit cores. In this case, each cluster has a 32-bit physical address space, and the local physical addresses (internal to a cluster) have therefore 32-bit. To access the physical addressing space of other clusters, ALMOS-MKH uses 64-bit global physical addresses. For example, the physical space of the TSAR architecture uses 40 bits, and the 8 most significant bits define the target cluster number. ALMOS-MKH thus explicitly distinguishes two types of access:
    16   * Local access (internal to a cluster) uses 32-bit addresses.
    17   * remote accesses (to another cluster) use 64-bit addresses.
     15To reduce energy consumption, ALMOS-MKH supports architectures using 32-bit cores. In this case, each cluster has a 32-bit physical address space, addressed by the LPA (Local Physical Address). To access the physical addressing space of other clusters, ALMOS-MKH defines 64-bit global physical addresses (CXY,LPA). For example, the physical space of the TSAR architecture has 40 bits, the 8 most significant bits define the target cluster identifier CXY, and the 32 LSB bits define the local physical address LPA. The ALMOS-MKH kernel thus explicitly distinguishes two types of access:
     16  * Local access (internal to a cluster) uses standard pointers.
     17  * Remote accesses (to another cluster) use extended pointers.
    1818
    19 On a hardware platform containing 32-bit cores, ALMOS-MKH runs entirely in physical addressing: the MMU is only used by the application code. The MMU is deactivated as soon as a core enters the kernel, and it is reactivated when it leaves it. 32-bit physical addresses allow the kernel instance of a K cluster to directly access all local resources (memory or devices). To directly access the address space of another cluster, ALMOS-MKH uses ''remote_read'' and ''remote_write'' primitives using 64-bit extended physical addresses (CXY / PTR). CXY is the 32-bit target cluster identifier, and PTR is the local physical address in the 32-bit target cluster. These primitives are used to implement the RPC mechanism, but are also used to speed up some access to kernel distributed data structures, which are critical in performance.
     19On hardware platforms containing '''32-bit cores''', such as TSAR, the ALMOS-MKH kernel runs partially in physical addressing: To reduce contention, ALMOS_MKH replicates the kernel code in all clusters, and uses - in each cluster - the Instruction MMU to map the local kernel code copy in the kernel virtual space. But the Data MMU is deactivated as soon as a core enters the kernel, and it is reactivated when it returns to user. To access the local addressable resources (memory or devices), ALMOS-MK uses standard 32 bits pointers in identity mapping.  To access ressources in another cluster, ALMOS-MKH uses the ''remote_read'' and ''remote_write'' primitives implementing the 64-bit extended pointers (CXY / PTR). CXY is the target cluster identifier, and PTR is the local pointer in the target cluster. These remote access primitives are used to implement the RPC mechanism, but are also used for fast access to kernel distributed data structures, which are critical in performance. For the applications ALMOS_MKH, as any POSIX compliant OS, uses the MMU for both the instructions and the data.
    2020
    21 On a hardware platform containing 64-bit cores, it is no longer necessary to run the kernel in physical addressing,
    22 since all of the physical space can be mapped into the 64-bit virtual space. However, to enhance access localization while minimizing contention points, ALMOS-MKH continues to distinguish between local and remote accesses, and the communication model between kernel instances is not changed.
     21On a hardware platform containing '''64-bit cores''', such as Intel servers, it is no longer necessary for the kernel to use physical addressing to access data in remote clusters, since all the physical space can be mapped into the 64-bit virtual space. Therefore, both the local accesses and the remote access primitives uses the MMU to translate a 64 bits virtual address to a 64 bits physical address. However, to enhance access localization while minimizing contention, the ALMOS-MKH communication model continues to explicitly distinguish local and remote accesses.
    2322
    24 In both cases, communications between kernel instances are therefore implemented by a mix of RPCs (on the client / server model), and direct access to remote memory (when this is useful for performance). It is this hybrid approach that is the main originality of ALMOS-MKH and that is the reason of the H added after MK.
    25 
    26 {{{#!comment
    27 Ce document décrit les principes généraux de ALMOS-MK, qui est un système d'exploitation visant des architectures manycore à espace d'adressage partagé de type CC-NUMA (Cache Cohérent, Non Uniforme Memory Access), telles que l'architecture TSAR, qui peut supporter jusqu'à 1024 coeurs MIPS 32 bits. ALMOS-MK vise également des architectures multi-coeurs INTEL/AMD utilisant des coeurs I86 64 bits.
    28 
    29 Les architectures visées sont supposées clusterisées, avec un ou plusieurs coeur et un banc mémoire physique par cluster. On vise tout particulièrement des applications parallèles multi-thread respectant la norme POSIX.
    30 
    31 Le système ALMOS-MK est l'héritier du système ALMOS, développé par Ghassan Almaless, et les principes généraux du système ALMOS sont décrits dans sa thèse.
    32 
    33 La première version de ALMOS-MK, et en particulier le système de fichiers distribué et le mécanisme de communication par RPC ont été développés par Mohamed Karaoui, et les principes généraux de l'approche "Multi-Kernel proposée sont décrits dans sa thèse.
    34 
    35 Pour garantir le passage à l'échelle, et favoriser la distribution des services système, ALMOS-MK repose sur l'approche ''Multi-Kernel'', dans laquelle il existe une instance du noyau dans chaque cluster de l'architecture. Celle-ci contrôle les ressources locales (mémoire et coeurs de calcul). Ces multiples instances coopèrent entre elles pour donner aux applications l'image d'un unique système contrôlant l'ensemble des ressources. Elles communiquent entre elles sur le modèle client /serveur en utilisant des RPCs (Remote Procédure Call).
    36 
    37 Pour réduire la consommation énergétique, ALMOS-MK supporte des architectures utilisant des processeurs 32 bits. Dans ce cas, chaque cluster possède un espace d'adressage physique 32 bits, et les adresses physiques locales (internes à un cluster) sont donc codées sur 32 bits. Pour accéder à l'espace adressage physique des autres clusters, ALMOS-MK utilise des adresses physiques globales codées sur 64 bits. A titre d'exemple l'espace physique de l'architecture TSAR utilise 40 bits, et les 8 bits de poids fort définissent donc le numéro du cluster cible. ALMOS-MK distingue donc explicitement deux types d'accès:
    38  * les accès locaux (internes à un cluster) utilisent des adresses 32 bits.
    39  * les accès distants (vers un autre cluster) utilisent des adresses 64 bits.
    40 
    41 Sur une plate-forme matérielle contenant des processeurs 32 bits, ALMOS-MK s'exécute entièrement en adressage physique : la MMU paginée des coeurs n'est utilisée que par le code des applications. Elle est désactivée dès qu'on entre dans le noyau, et elle est réactivée quand on en sort. Les addresses physique 32 bits permettent à l'instance du noyau d'un cluster K d'accéder directement à toutes les ressource (mémoire ou périphériques) locales. Pour accéder directement à l'espace adressage d'un autre cluster, ALMOS-MK utilise des primitives  ''remote_read'' et ''remote_write'' utilisant des adresses physiques étendues (CXY / PTR) sur 64 bits. CXY  est l'identifiant du cluster cible, sur 32 bits, et PTR est l'adresse physique locale dans le cluster cible sur 32 bits. Ces primitives sont  utilisées pour implémenter le mécanisme RPC, mais sont aussi utilisées pour accélérer certains accès aux structures de données distribuées du noyau, qui sont critiques en performance.
    42 
    43 Sur une plate-forme matérielle contenant des processeurs 64 bits, il n'est plus nécessaire d'exécuter le noyau en adressage physique,
    44 puisque l'ensemble de l'espace physique peut être mappé dans l'espace virtuel 64 bits. Néanmoins pour renforcer la localité des accès tout en minimisant les points de contention, ALMOS-MK continue à distinguer entre accès locaux et accès distants, et le modèle de communication entre instances du noyau n'est pas modifié.
    45 
    46 
    47 Dans les deux cas, les communications entre instances du noyau sont donc implémentées par un mélange de RPCs (sur le modèle client/serveur), et d'accès directs en mémoire distante (quand cela est utile pour les performances). C'est cette approche hybride qui constitue la principale originalité de ALMOS-MK.
    48 }}}
     23In both cases, communications between kernel instances are therefore implemented by a mix of RPCs (on the client / server model), and direct access to remote memory (when this is useful for performance). This hybrid approach is the main originality of ALMOS-MKH.
    4924
    5025== A) [wiki:arch_info Hardware Platform Definition] ==