wiki:WikiStart

Version 57 (modified by alain, 10 years ago) (diff)

--

GIET-VM documentation

The GIET_VM is a fully static operating system for shared address space, many-cores architectures. These architectures are generally NUMA (Non Uniform memory Acces), because the memory is logically shared, but physically distributed, and the main goal of the GIET_VM is to address these NUMA issues.

The GIET-VM assumes that the hardware architecture is structured as a 2D mesh of clusters. There is one physical memory bank, and several processor cores per cluster. Each processor is identified by a composite index [x,y,p] where x, y are the cluster coordinates, and p is the local processor index.

It is written for the MIPS32 processor. The virtual adresses are on 32 bits and use the (unsigned int) type, but the physicals addresses can have up to 40 bits, and use the (unsigned long long) type.

The target architecture is generic, and the parameter values (such as the number of clusters, or the number of cores per cluster) are defined in the hard_config.h file. The GIET-VM itself has configuration parameters that are defined in the giet_config.h file.

A) Mapping

Both the target hardware architecture and the mapping directives (placement of software tasks on the physical processors / placement of the software objects on the physical memory banks) must be described in a python script. This section describes the Python constructs used to describe the mapping.

B) Boot-loader

C) Kernel_init

D) Boot & Kernel common functions

E) Kernel functions

F) System calls

G) User level libraries

B) Peripherals Drivers