Changes between Version 22 and Version 23 of io_operations


Ignore:
Timestamp:
Nov 3, 2016, 4:38:07 PM (8 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • io_operations

    v22 v23  
    3636== C) Devices Descriptors Placement ==
    3737
    38 '''Internal peripherals'''  are replicated in all clusters.  In each cluster, the device descriptor is evidently stored in the same cluster as the hardware device itself. These device descriptors are mostly accessed by the local kernel instance, but  can also be accessed by threads running in another cluster (for ICU, or MMC).
     38'''Internal peripherals'''  are replicated in all clusters.  In each cluster, the device descriptor is evidently stored in the same cluster as the hardware device itself. These device descriptors are mostly accessed by the local kernel instance, but  can also be accessed by threads running in another cluster (it is the case for both the ICU and MMC devices).
    3939
    4040'''External peripherals''' are shared resources, located in the I/O cluster. To minimize contention, the corresponding device descriptors are distributed on all clusters, as uniformly as possible. Therefore, an I/O operation involve generally three clusters: the client cluster, the I/O cluster containing the external peripheral, and the server cluster containing the device descriptor.
     
    4343This structure is organized as a set of arrays:
    4444 * There is one entry per channel for each '''external peripheral''', and the corresponding array is indexed by the channel index.
    45  * There is one entry per cluster for each '''internal device''', and the corresponding array is indexed by the cluster index (it is not indexed by the cluster identifier cxy, because cxy is not a continuous index).
     45 * There is one entry per cluster for each '''internal peripheral''', and the corresponding array is indexed by the cluster index (it is not indexed by the cluster identifier cxy, because cxy is not a continuous index).
    4646
    4747This device directory being implemented as a global variable, is replicated in all clusters, and is initialized in the kernel initialization phase.