Changes between Version 54 and Version 55 of io_operations
- Timestamp:
- Jan 20, 2020, 12:24:02 PM (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
io_operations
v54 v55 11 11 ALMOS-MKH supports two types of peripheral components: 12 12 13 * '''External peripherals''' are accessed through a bridge located in one single cluster (called ''cluster_io'', identified by the ''io_cxy'' parameter in the arch_info description). External devices are shared resources that can be used by any thread running in any cluster. Examples are the generic IOC device (Block Device Controller), the generic NIC device (Network Interface Controller), the generic TXT device (Text Terminal), the generic FBFdevice (Frame Buffer for Graphical Display Controller).13 * '''External peripherals''' are accessed through a bridge located in one single cluster (called ''cluster_io'', identified by the ''io_cxy'' parameter in the arch_info description). External devices are shared resources that can be used by any thread running in any cluster. Examples are the generic '''IOC''' device (Block Device Controller), the generic '''NIC''' device (Network Interface Controller), the generic '''TXT''' device (Text Terminal), the generic '''FBF''' device (Frame Buffer for Graphical Display Controller). 14 14 15 * '''Internal peripherals''' are replicated in all clusters. Each internal peripheral is associated to the local kernel instance, but can be accessed by any thread running in any cluster. There are very few internal peripherals. Examples are the generic LAPIC device (Interrupt Controller Unit), or the generic MMCdevice (L2 Cache Configuration and coherence management).15 * '''Internal peripherals''' are replicated in all clusters. Each internal peripheral is controled by the local kernel instance, but can be accessed by any thread running in any cluster. There are very few internal peripherals. Examples are the generic '''DMA''' device (Direct Memory Access), or the generic '''MMC''' device (L2 Cache Configuration and coherence management). 16 16 17 ALMOS-MKH supports ''multi-channels'' externalperipherals, where one single peripheral controller contains N channels that can run in parallel. Each channel has a separated set of addressable registers, and each channel can be used by the OS as an independent device. Examples are the TXT peripheral (one channel per text terminal), or the NIC peripheral (one channel per MAC interface).17 ALMOS-MKH supports ''multi-channels'' peripherals, where one single peripheral controller contains N channels that can run in parallel. Each channel has a separated set of addressable registers, and each channel can be used by the OS as an independent device. Examples are the TXT peripheral (one channel per text terminal), or the NIC peripheral (one channel per MAC interface). 18 18 19 The set of available peripherals, and their location in a given many-core architecture must be described in the '''arch_info.py''' file. For each peripheral, the composite index is implemented as a 32 bit integer, where the 16 MSB bits define the ''functional'' type, and the 16 LSB bits define the ''implementation'' subtype.19 The set of available peripherals, and their location in a given many-core architecture is described in the '''arch_info.py''' file. For each peripheral, the composite (FUNC,IMPL) type is implemented as a 32 bit integer, where the 16 MSB bits define the ''functional'' type, and the 16 LSB bits define the ''implementation'' type. 20 20 21 21 == B) Generic Devices APIs ==