Changes between Version 27 and Version 28 of io_operations
- Timestamp:
- Nov 7, 2016, 1:12:27 PM (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
io_operations
v27 v28 45 45 == C) Devices Descriptors Placement == 46 46 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. 48 48 49 49 '''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. … … 95 95 == F) Implementation == 96 96 97 This general I/O operation mechanism involves generally three clusters (client cluster / server cluster / IO cluster), but does not use any RPC:97 This general I/O operation mechanism involves generally three clusters : client cluster / server cluster / IO cluster. But it does not use any RPC: 98 98 * 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. 99 99 * 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.