Changes between Version 24 and Version 25 of kernel_interrupts
- Timestamp:
- May 12, 2015, 1:53:20 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
kernel_interrupts
v24 v25 25 25 4. In each cluster, 4 '''WTI''' mailboxes (called WAKE_UP, EXT_IRQ_ONE, EXT_IRQ_TWO, EXT_IRQ_TER) are statically allocated to each processor. 26 26 27 5. The '''WAKE-UP''' interrupt can be used in two situations: When the interrupted processor is in "wait state" (low-power mode), the processor exit the "wait state", but the ISR is not executed. When the processor is not in "wait state" the ISR is executed. If the interrupted processor is runing the idle_task, or if the value written in the WTI mailbox is non zero, the ISR force a context switch on the target processor. These WAKE_UP mailboxes have indexes from (0 to NB_PROCS_MAX-1).27 5. The '''WAKE-UP''' interrupt can be used in two situations: When the interrupted processor is in "wait state" (low-power mode), the processor exit the "wait state", but the ISR is not executed. When the processor is not in "wait state" the ISR is executed. If the interrupted processor is runing the idle_task, or if the value written in the WTI mailbox is non zero, the ISR force a context switch on the target processor. 28 28 29 6. The three '''EXT_IRQ_ONE''', '''EXT_IRQ_TWO''' and '''EXT_IRQ_TER''' interrupts are dynamically allocated to external IRQS generated by the external peripherals (through the IOPIC component), in order to route the external IRQ - via a WTI - to the processor that launched the I/O operation. For processor with index = lpid, these 3 mailboxes have indexes (lpid + NB_PROCS_MAX) / (lpid + 2*NB_PROCS_MAX) / (lpid + 3*NB_PROCS_MAX).29 6. The three '''EXT_IRQ_ONE''', '''EXT_IRQ_TWO''' and '''EXT_IRQ_TER''' interrupts are dynamically allocated to external IRQS generated by the external peripherals (through the IOPIC component), in order to route the external IRQ - via a WTI - to the processor that launched the I/O operation. 30 30 31 The array below define the static routing of WTIs to the local processors, implemented by the XCU masks:31 The array below define the static allocation of WTI mailboxes to the local processors, implemented by the XCU masks: 32 32 || '''WTI name''' || ''' WTI index''' || 33 33 || WAKE_UP || lpid || … … 59 59 * '''wti_index''' : return value defining the index of the WTI mailbox allocated to P[x,y,p] 60 60 This function does three things: 61 1. it allocates a WTI mailbox in the XCU of cluster[x,y] to the requesting processor : WTI index can be (p + NB_PROCS_MAX) / (p + 2*NBPROCS_MAX) / p + (3*NB_PROCS_MAX).61 1. it allocates a WTI mailbox in the XCU of cluster[x,y] to the requesting processor. 62 62 2. it initializes the IOPIC register associated to the (isr_type / isr_channel) external IRQ. 63 63 3. it initializes the proper entry in the WTI interrupt vector associated to processor P[x,y,p].