Changes between Version 26 and Version 27 of io_operations


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

--

Legend:

Unmodified
Added
Removed
Modified
  • io_operations

    v26 v27  
    3535|| PIC     || ext   || External Interrupt controller || [wiki:pic_device_api pic_api] ||
    3636|| ICU     || int    || Internal Interrupt Controller  || [wiki:icu_device_api icu_api] ||
     37
     38To signal the completion of an I/O operation, ALMOS-MK defines three types of interrupts :
     39 * '''HWI''' : The HardWare Interrupt are physical signals connection one peripheral IRQ to an internal (ICU) or external (PIC) interrupt controller.
     40 * '''WTI''' : The Write Triggered Interrupt are mailboxes implemented in the distributed ICU component to support software IPI (Inter Processor Interrupt), or to route external peripheral IRQ from the PIC component to the client core through a specific ICU.
     41 * '''PTI''' : The Programmable Timer Interrupt are implemented in the distributed ICU to support periodical interrupts used by the preemptive context swich mechanism.
     42
     43WARNING: The two PIC (external) and ICU (internal) devices in the list defined above have a special role: they do NOT perform I/O operations, but are used as configurable interrupt routers to dynamically link a peripheral channel interrupt to a given core. Therefore, the functions defined by the ICU and PIC APIs are service functions, called by the other devices functions. These ICU and PIC functions don't use the waiting queue implemented in the generic device descriptor, but call directly the ICU or PIC drivers.
    3744
    3845== C) Devices Descriptors Placement ==
     
    8895== F) Implementation ==
    8996
    90 It is worth noting that 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 does not use any RPC:
    9198 * 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.
    9299 * 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.