Changes between Version 27 and Version 28 of io_operations


Ignore:
Timestamp:
Nov 7, 2016, 1:12:27 PM (8 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • io_operations

    v27 v28  
    4545== C) Devices Descriptors Placement ==
    4646
    47 '''Internal peripherals'''  are replicated in all clusters.  In each cluster, the device descriptor is obviously 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).
     47'''Internal peripherals'''  are replicated in all clusters.  In each cluster, the device descriptor is stored in the same cluster as the hardware device itself. These device descriptors are shared resources: they are mostly accessed by the local kernel instance, but  can also be accessed by threads running in another cluster. This the case for both the ICU and the MMC devices.
    4848
    4949'''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 involves generally three clusters: the client cluster, the I/O cluster containing the external peripheral, and the server cluster containing the device descriptor.
     
    9595== F) Implementation ==
    9696
    97 This general I/O operation mechanism involves generally three clusters (client cluster / server cluster / IO cluster), but does not use any RPC:
     97This general I/O operation mechanism involves generally three clusters : client cluster / server cluster / IO cluster. But it does not use any RPC:
    9898 * To post a new command in the waiting queue of a given (remote) device descriptor, the client thread uses only few remote accesses to be registered in the distributed XLIST rooted in the server cluster.
    9999 * To launch the I/O operation on the (remote) peripheral, the server thread uses only remote accesses to the physical registers located in the I/O cluster.