Backoff timer for in-band interrupt on I3C bus
By introducing a backoff timer into the I3C bus, the problem that lower priority devices cannot obtain bus access is solved, service opportunities for lower priority devices are realized, and fair allocation of bus resources is improved.
Patent Information
- Application Number
- CN202411631490.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-11-20
- Filing Date
- 2024-11-15
- Publication Date
- 2025-05-20
AI Technical Summary
In the I3C bus, lower priority slave devices may not be able to get service due to frequent interrupt requests from higher priority devices, resulting in unavailability of bus access opportunities.
A backoff timer is introduced, and by storing the backoff time, it avoids in-band interrupt requests in response to the start condition when the backoff time has not expired; when the backoff time expires, it is allowed to respond to the start condition and initiate in-band interrupt requests.
Ensure that lower priority slave devices can get bus access opportunities after the backoff time expires, avoid the problem of being ignored due to low priority, and improve fair allocation of bus resources.
Smart Images

Figure CN120020744A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the servicing of in - band interrupts (IBIs) on an I3C bus, and more particularly to a method for addressing the lack of servicing of lower - priority slave devices. Background Art
[0002] It is well known to use serial buses to interconnect devices for data communication. For example, a processor or other host device may be connected to peripheral devices via a serial bus. The serial bus typically operates according to specifications and protocols defined by standards bodies. In one example, the I3C protocol defines the timing relationships between signals and transmissions on the serial bus.
[0003] I3C slave (target) devices are configured to assert in - band interrupts (IBIs) to request access to the serial bus. The bus master (controller) device services the requested interrupts on a priority basis. In the case of contention for service among multiple slave devices, the interrupt - asserting slave device with the highest assigned priority is serviced first. Due to this priority - based service hierarchy, lower - priority slave devices may not be serviced when higher - priority slave devices compete for bus access at each interrupt opportunity.
[0004] Accordingly, there is a need in the art to address the above - mentioned problems and ensure that lower - priority I3C slave devices are given the opportunity for the bus master device to service their interrupt requests. Summary of the Invention
[0005] In one embodiment, a method for a slave device to issue an in - band interrupt request to a master device on a serial data bus includes: checking whether a backoff time stored by a backoff timer has expired; when the backoff time has not expired, avoiding initiating an in - band interrupt request to the master device in response to a start condition on the serial bus; and when the backoff time has expired, permitting initiating an in - band interrupt request to the master device in response to a start condition on the serial bus.
[0006] In one embodiment, a slave device configured to communicate with a master device via a serial data bus includes: a backoff timer configured to store a backoff time; wherein the slave device is further configured to: check whether the backoff time stored by the backoff timer has expired; when the backoff time has not expired, avoid initiating an in - band interrupt request to the master device in response to a start condition on the serial bus; and when the backoff time has expired, initiate an in - band interrupt request to the master device in response to a start condition on the serial bus.
[0007] In one embodiment, a method includes: in response to a first start condition on a serial bus, a slave device initiating a first in-band interrupt request to a master device via the serial bus; receiving, from the master device, an acknowledgement of the first in-band interrupt request; in response to the received acknowledgement, the slave device resetting a backoff timer to store a backoff time; and the slave device waiting for the expiration of the backoff time stored by the backoff timer before the slave device initiates a second in-band interrupt request to the master device via the serial bus in response to a second start condition on the serial bus. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] To understand the present invention, embodiments of the present invention will now be described by way of non-limiting example only with reference to the accompanying drawings, in which:
[0009] Figure 1 is a block diagram of a bus network including a plurality of devices connected to an I3C serial bus;
[0010] Figure 2 is a block diagram of a bus network including a master device connected to an I3C serial bus and a slave device having an in-band interrupt (IBI) backoff timer;
[0011] Figure 3 illustrates Figure 2 the operation of the bus network shown in; and
[0012] Figure 4 is a flow chart illustrating the operation of the slave device. DETAILED DESCRIPTION
[0013] Reference is now made to Figure 1 which Figure 1 shows a block diagram of a bus network 10 including a plurality of devices 12 connected to an I3C serial bus 14. The serial bus 14 includes a serial data line SDA and a serial clock line SCL. Each device 12 includes a connection to the SDA line and the SCL line of the serial bus 14. The devices 12 include a device 12M configured to operate as a bus master (or bus controller), and a plurality of devices 12S configured to operate as bus slaves (or bus targets). An additional indication (parenthetical) (_) included in the reference numeral for each slave device 12S indicates the priority of the slave device 12S on the serial bus 14 (where the smaller number in the parenthetical indicates a higher assigned priority). This priority is assigned by the bus master 12M via a bus address. In the illustrated example, the slave device 12S(1) has an assigned bus address with a higher priority than the bus address assigned to the slave device 12S(2), and the slave device 12S(2) has an assigned bus address with a higher priority than the bus address assigned to the slave device 12S(3).
[0014] Slave device 12S can use an in-band interrupt (IBI) to seek the attention of bus master 12M. A slave device 12S with a pending interrupt to be serviced can contend for access to serial bus 14 by participating in the bus arbitration process. After a START (start) condition on serial bus 14 is satisfied (caused by a device 12M or 12S driving the SDA line to logic low while bus 14 is in the IDLE state and then the master device 12M driving the SCL line to logic low), the contending slave devices 12S can initiate IBI requests and start transmitting their assigned bus addresses on the SDA line simultaneously. Only the slave device 12S with the lowest assigned bus address (i.e., the highest assigned priority) will successfully transmit its bus address on the SDA line to the master device 12M. Then, the master device 12M can respond to the successful slave device 12S with an acknowledgement (ACK) and then service the IBI request from that slave device 12S. Then, the unsuccessful slave devices 12S must wait for the next START condition before initiating a new IBI request and contending for bus access.
[0015] Consider the following example in the context of the assigned priorities of slave devices 12S as shown in Figure 1 . At time t0, slave devices 12S(1), 12S(2), and 12S(3) have interrupts that require the attention of master device 12M. At time t1 after time t0, a START condition on serial bus 14 is satisfied. At time t2 after time t1, all three slave devices 12S(1), 12S(2), and 12S(3) start transmitting their assigned bus addresses on the SDA line. Slave device 12S(1) has the bus address with the highest priority, and only its bus address is received by master device 12M. At time t3 after time t2, master device 12M acknowledges the IBI request of slave device 12S(1) with an ACK message sent on the SDA line and then services the interrupt.
[0016] At time t4 after servicing the IBI of slave device 12S(1), a START condition on serial bus 14 is satisfied again. At time t5 after time t4, slave devices 12S(2) and 12S(3) start transmitting their assigned bus addresses on the SDA line. Slave device 12S(2) has the bus address with the highest priority, and only its bus address is received by master device 12M. At time t6 after time t5, master device 12M acknowledges the IBI request of slave device 12S(2) with an ACK message sent on the SDA line and then services the interrupt.
[0017] At time t7 after servicing the IBI of slave device 12S(2), the START condition on the serial bus 14 is satisfied again. At time t8 after time t7, slave device 12S(3) starts transmitting its assigned bus address on the SDA line. Slave device 12S(3) has the bus address with the highest priority, and only its bus address is received by the master device 12M. At time t9 after time t8, the master device 12M uses the ACK message sent on the SDA line to confirm the IBI request of slave device 12S(3), and then services the interrupt.
[0018] However, in some cases, there may be persistent contention under each START condition, and one or more slave devices 12S with assigned bus addresses of low priority may not win the bus arbitration process. For example, this may occur in a scenario where the slave devices 12S are highly active and generate frequent IBI requests. Consider the following example in the context of the assigned priorities of the slave devices 12S as shown in Figure 1 At time t10, slave devices 12S(1), 12S(2), and 12S(3) have interrupts that require the attention of the master device 12M. At time t11 after time t10, the START condition on the serial bus 14 is satisfied. At time t12 after time t11, all three slave devices 12S(1), 12S(2), and 12S(3) start transmitting their assigned bus addresses on the SDA line. Slave device 12S(1) has the bus address with the highest priority, and only its bus address is received by the master device 12M. At time t13 after time t12, the master device 12M uses the ACK message sent on the SDA line to confirm the IBI request of slave device 12S(1), and then services the interrupt.
[0019] At time t14 after servicing the IBI of slave device 12S(1), the START condition on the serial bus 14 is satisfied again. However, in this case, slave device 12S(1) has another interrupt that requires the attention of the master device 12M. At time t15 after time t14, slave devices 12S(1), 12S(2), and 12S(3) start transmitting their assigned bus addresses on the SDA line. Slave device 12S(1) again has the bus address with the highest priority, and only its bus address is received by the master device 12M. At time t16 after time t15, the master device 12M uses the ACK message sent on the SDA line to confirm the IBI request of slave device 12S(1), and then services the interrupt.
[0020] At time t17 after servicing the IBI of slave device 12S(1), the START condition on serial bus 14 is satisfied. At time t18 after time t17, slave devices 12S(2) and 12S(3) start transmitting their assigned bus addresses on the SDA line. Slave device 12S(2) has the bus address with the highest priority, and only its bus address is received by master device 12M. At time t19 after time t18, master device 12M uses the ACK message sent on the SDA line to confirm the IBI request of slave device 12S(2), and then services the interrupt.
[0021] At time t20 after servicing the IBI of slave device 12S(2), the START condition on serial bus 14 is satisfied again. However, in this case, slave device 12S(1) has another interrupt that requires the attention of master device 12M. At time t21 after time t20, slave devices 12S(1) and 12S(3) start transmitting their assigned bus addresses on the SDA line. Slave device 12S(1) again has the bus address with the highest priority, and only its bus address is received by master device 12M. At time t22 after time t21, master device 12M uses the ACK message sent on the SDA line to confirm the IBI request of slave device 12S(1), and then services the interrupt.
[0022] The slave device 12S(3) with the lowest assigned priority is effectively prevented from winning the bus arbitration process due to the continuous access requirements of one or more slave devices 12S with higher assigned priorities. The slave device 12S(3) lacks service on the serial bus 14 and lacks any mechanism to make the master device 12M aware of its service requirements.
[0023] Now refer to Figure 2 for Figure 2A block diagram of a bus network is shown that includes a master device 112M and slave devices 112S connected to an I3C serial bus 114. The slave device 112S has an in-band interrupt (IBI) backoff timer 102. The serial bus 114 includes a serial data line SDA and a serial clock line SCL. Each device 112 includes connections to the SDA and SCL lines of the serial bus 114. The devices 112 include a device 112M configured to operate as a bus master (or bus controller), and multiple devices 112S configured to operate as bus slaves (or bus targets). An additional designation (_) included in the reference numeral for each slave device 112S indicates the priority of the slave device 112S on the serial bus 114. This priority is assigned by the bus master 112M via the bus address. In the illustrated example, the slave device 112S(1) has an assigned bus address with a higher priority than the bus address assigned to the slave device 112S(2), and the slave device 112S(2) has an assigned bus address with a higher priority than the bus address assigned to the slave device 112S(3).
[0024] The slave device 112S can use an in-band interrupt (IBI) to seek the attention of the bus master 112M. A slave device 112S with a pending interrupt can contend for access to the serial bus 114 by participating in a bus arbitration process. After a START condition on the serial bus 114 is satisfied (caused by the device 112M or 112S driving the SDA line to logic low while the bus 114 is in the IDLE state, and then the master device 112M driving the SCL line to logic low), the contending slave devices 112S can initiate an IBI request and start transmitting their assigned bus addresses on the SDA line simultaneously. Only the slave device 112S with the lowest assigned bus address (i.e., the highest assigned priority) will successfully transmit its bus address on the SDA line to the master device 112M. The master device 112M can then respond to the successful slave device 112S with an acknowledgment (ACK) and then service the IBI request from that slave device 112S. The unsuccessful slave devices 112S must then wait for the next START condition before initiating a new IBI request.
[0025] Each IBI backoff timer 102 in a slave device 112S stores a backoff time value (BOTIME) that indicates the delay period that the slave device 112S must wait before it participates in a bus arbitration process for an in-band interrupt. In response to the slave device 112S winning the bus arbitration process and being acknowledged by the master device 112M (using an acknowledgment message (ACK)), the slave device 112S will set its IBI backoff timer 102 with the backoff time value (BOTIME). If the slave device 112S subsequently has an interrupt that needs to be serviced by the master device 112M, but the backoff time value is not zero (i.e., BOTIME ≠ 0), then the slave device 112S will not respond to the satisfaction of the START condition on the serial bus 114 by participating in the bus arbitration process. In other words, the slave device 112S is prohibited from participating in the bus arbitration process when the backoff timer 102 stores a non-zero value. When the backoff time value is equal to zero (i.e., BOTIME = 0), the slave device 112S will wait for the backoff time to expire and then respond to the satisfaction of the START condition on the serial bus 114 by participating in the bus arbitration process.
[0026] In one embodiment, the backoff time value refers to the number of START conditions on the serial bus 114 that must occur after the slave device 112S wins the bus arbitration process and is acknowledged by the master device 112M, before the slave device 112S can participate in the bus arbitration process again. In this case, the IBI backoff timer 102 can be implemented as a counter that is reset with the backoff time value after winning the bus arbitration process and being acknowledged by the master device 112M. Then, on each successive satisfaction of the START condition, the backoff time value is decremented by one. When the backoff time value is decremented to zero, the slave device 112S is permitted to participate in the next bus arbitration process.
[0027] Consider in the context of the assigned priority of the slave device 112S as shown in Figure 2 and as used Figure 3The following example illustrated by the signal ping-pong diagram. At time t100, devices 112S(1), 112S(2), and 112S(3) have interrupts (int(1), int(2), int(3) respectively) that require the attention of the master device 12M, and the backoff timers for all slave devices have backoff time values equal to zero. At time t101 after time t100, the START condition on the serial bus 104 is satisfied. At time t102 after time t101, all three slave devices 102S(1), 102S(2), and 102S(3) start transmitting their assigned bus addresses (address(1), address(2), address(3) respectively) on the SDA line. Slave device 102S(1) has the bus address (address(1)) with the highest priority, and only its bus address is received by the master device 102M. At time t103 after time t102, the master device 112M uses the ACK message sent on the SDA line to confirm the IBI request of the slave device 112S(1), and then services the interrupt. In response to receiving the ACK message, the slave device 112S(1) resets the backoff time value stored in the timer 102(1) to the maximum value, which is, for example, equal to two (i.e., BOTIME(1) = 2).
[0028] At time t104 after servicing the IBI of slave device 112S(1), the START condition on serial bus 114 is satisfied. At this time, slave device 112S(1) has another interrupt (int(1’)) that requires the attention of master device 112M, and the interrupts int(2) and int(3) of slave devices 112S(2) and 112S(3) remain unresolved. However, since the backoff time value stored in timer 102(1) of device 112S(1) is not equal to zero, device 112S(1) avoids participating in the bus arbitration process in response to the START condition. At time t105 after time t104, slave devices 112S(2) and 112S(3) (where the backoff time values of both are equal to zero) start transmitting their assigned bus addresses (address(2) and address(3) respectively) on the SDA line. Slave device 112S(2) has the bus address (address(2)) with the highest priority, and only its bus address is received by master device 112M. At time t106 after time t105, master device 112M uses the ACK message sent on the SDA line to confirm the IBI request of slave device 112S(2), and then services the interrupt. In response to receiving the ACK message, slave device 112S(2) resets the backoff time value stored in timer 102(2) to the maximum value, which is, for example, equal to two (i.e., BOTIME(2) = 2). In addition, slave device 112S(1) decrements the backoff time value stored in timer 102(1) by one to make it equal to one (i.e., BOTIME(1) = 1).
[0029] At time t107 after servicing the IBI of slave device 112S(2), the START condition on the serial bus 114 is satisfied. At this time, slave device 112S(2) has another interrupt (int(2’)) that requires the attention of master device 112M, and the interrupts int(3) and int(1’) of slave devices 112S(3) and 112S(1) remain unresolved. However, since the backoff time values stored in timer 102(1) of slave device 112S(1) and timer 102(2) of slave device 112S(2) are not equal to zero, devices 112S(1) and 112S(2) are prohibited from participating in the bus arbitration process in response to the START condition. At time t108 after time t107, slave device 112S(3) starts transmitting their assigned bus addresses on the SDA line. Slave device 112S(3) has the bus address with the highest priority, and only its bus address is received by master device 112M. At time t109 after time t108, master device 112M uses the ACK message sent on the SDA line to confirm the IBI request of slave device 112S(3), and then services the interrupt. In response to receiving the ACK message, slave device 112S(3) resets the backoff time value stored in timer 102(3) to the maximum value, for example, equal to 2 (i.e., BOTIME(3) = 2). In addition, slave device 112S(1) will decrement the backoff time value stored in timer 102(1) by one to make it equal to zero (i.e., BOTIME(1) = 0), and slave device 112S(2) will decrement the backoff time value stored in timer 102(2) by one to make it equal to 1 (i.e., BOTIME(2) = 1).
[0030] Therefore, although the pending interrupts (int(1’), int(2’)) of slave devices 112S(1) and 112S(2) have higher priority at time t107, the interrupt of slave device 112S(3) is serviced by master device 112M. Slave device 112S(3) is not lacking in service.
[0031] At time t110 after servicing the IBI of slave device 112S(3), the START condition on serial bus 114 is satisfied again. At this time, slave device 112S(3) has another interrupt (int(3’)) that requires the attention of master device 112M, and the interrupts int(1’) and int(2’) of slave devices 112S(1) and 112S(2) remain unresolved. However, since the backoff time values stored in timer 102(2) of slave device 112S(2) and timer 102(3) of slave device 112S(3) are not equal to zero, slave devices 112S(2) and 112S(3) are prevented from participating in the bus arbitration process. However, the time value stored in timer 102(1) of slave device 112S(1) has been decremented to zero, and device 112S(1) is now permitted to participate in the bus arbitration process. At time t111 after time t110, slave device 112S(1) starts transmitting its assigned bus address on the SDA line. Slave device 112S(1) has the bus address with the highest priority, and only its bus address is received by master device 112M. At time t112 after time t111, master device 112M acknowledges the IBI request of slave device 112S(1) with an ACK message sent on the SDA line and then services the interrupt. In response to the ACK message, slave device 112S(1) resets the backoff time value stored in timer 102(1) to the maximum value, for example, equal to two (i.e., BOTIME(1) = 2). In addition, slave device 112S(2) decrements the backoff time value stored in timer 102(2) by one to make it equal to zero (i.e., BOTIME(1) = 0), and slave device 112S(3) decrements the backoff time value stored in timer 102(3) by one to make it equal to one (i.e., BOTIME(3) = 1).
[0032] It is noted that if a given slave device 112S has its bus address received by master device 112M, but master device 112M does not acknowledge the IBI request of device 112S and sends a non-acknowledgment (NACK) message on the SDA line, then slave device 112S will not reset the backoff time value stored in timer 102 to the maximum value. In this way, this slave device 112S will still be permitted to participate in the next bus arbitration process.
[0033] Now refer to Figure 4 for Figure 4The figure shows a flowchart of operations of slave device 112S. In step 200, slave device 112S determines whether it has an interrupt to be serviced. If the answer is no in step 200, then slave device 112S determines in step 202 that the START condition on serial bus 114 has been met, and then decrements the backoff time value by one in step 204. Then, the process returns to step 200 and repeats.
[0034] If the answer is yes in step 200, then slave device 112S determines in step 206 whether the backoff time value is greater than zero. If the answer is yes in step 206, then the process moves to step 202. Note that in this processing path, slave device 112S is prohibited and does not participate in the bus arbitration process by initiating an in-band interrupt.
[0035] If the answer is no in step 206, then slave device 112S determines in step 208 that the START condition on serial bus 114 has been met, and then participates in the bus arbitration process by initiating an in-band interrupt request in step 210. For example, the slave device responds to the START condition by transmitting the bits of its assigned address.
[0036] In step 212, slave device 112S determines whether master device 112M has confirmed the IBI request with an ACK message. If the answer is no in step 212, then the process returns to step 200 and repeats. Note that the backoff timer 102 is not reset here. If the answer is yes in step 212, then the backoff time value stored in timer 102 is reset to the maximum value, and then the process returns to step 200 and repeats.
[0037] In one embodiment, the maximum value of the backoff timer is a fixed value for each slave device 112S, and this fixed value is set for each device on bus 114 during programming. In this context, all slave devices 112S on a given bus 114 can be assigned to use the same maximum value. Alternatively, slave devices 112S on bus 114 can be assigned to use different maximum values. In this case, it may be beneficial for slave devices 112S with a lower assigned priority to also be assigned to use a smaller maximum value of backoff timer 102. In another embodiment, the maximum value of the backoff timer is dynamically set by master device 112M and programmed by master device 112M into each slave device 112S on bus 114 (e.g., based on the number of devices 112S connected to the bus).
[0038] It should also be noted that for one or more devices 112S on bus 114 that require the highest priority (e.g., unrestricted) access, the maximum value of the backoff timer for these devices 112S can be set to a very low number or even zero.
[0039] The solutions described herein offer numerous advantages: a) maintaining a low pin count for the master device 112M; b) fully supporting the in-band interrupt process defined by the I3C protocol and standard; c) enabling lower-priority slave devices 112S to participate in the in-band interrupt process by ensuring access to the bus; d) providing the advantage of lower latency for the I3C bus implementing the in-band interrupt process; e) supporting low-power and low-overhead communication on the I3C bus; f) presenting a solution to the bus congestion problem, which otherwise might require bus splitting for bus scheduling, especially in the context of a real-time operating system (RTOS); g) implemented with minimal system overhead as the device 112S can essentially manage itself.
[0040] Although the present invention has been illustrated and described in detail in the drawings and the foregoing description, these illustrations and descriptions are to be considered illustrative or exemplary and not restrictive; the present invention is not limited to the disclosed embodiments. Other variations of the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims.
Claims
1. A method for sending an in-band interrupt request from a device to a master device on a serial data bus, comprising: Check whether the backoff time stored by the backoff timer has expired; When the backoff time has not expired, avoiding initiating the in-band interrupt request to the master device in response to a start condition on the serial bus; as well as When the backoff time has expired, the in-band interrupt request is permitted to be initiated to the master device in response to the start condition on the serial bus.
2. The method according to claim 1, further comprising: In response to an acknowledgement of the in-band interrupt request by the master device on the serial bus, the backoff time stored by the backoff timer is reset to a maximum value.
3. The method according to claim 2, further comprising: When the backoff time has not expired: In response to the start condition on the serial bus, the backoff time stored by the backoff timer is decremented, and initiating the in-band interrupt request to the master device is continuously avoided.
4. The method of claim 3, wherein decrementing the backoff time comprises: In response to each subsequent start condition on the serial bus, decremented by one. The method of claim 3 , wherein the backoff time expires when the backoff time is decremented to zero. The method of claim 2 , wherein the maximum value is set by the master device.
7. The method of claim 2, wherein the maximum value is set in consideration of a bus access priority level assigned to the slave device.
8. The method of claim 1, wherein the start condition on the serial bus indicates the initiation of a bus arbitration process for a plurality of slave devices requesting attention of the master device on the serial bus.
9. A slave device configured to communicate with a master device via a serial data bus, comprising: a backoff timer configured to store a backoff time; The slave device is further configured as: checking whether the backoff time stored by the backoff timer has expired; When the backoff time has not expired, refraining from initiating an in-band interrupt request to the master device in response to a start condition on the serial bus; and When the backoff time has expired, the in-band interrupt request is initiated to the master device in response to the start condition on the serial bus.
10. The slave device according to claim 9, further configured to: In response to an acknowledgement of the in-band interrupt request by the master device on the serial bus, the backoff time stored by the backoff timer is reset to a maximum value.
11. The slave device according to claim 10, further configured to: when the backoff time has not expired: responsive to the start condition on the serial bus, decrementing the backoff time stored by the backoff timer; and Continue to avoid initiating the in-band interrupt request to the master device. 12 . The slave device of claim 11 , wherein the backoff time expires when the backoff time is decremented to zero.
13. The slave device of claim 11, further configured to decrement the backoff time by one in response to each subsequent start condition on the serial bus.
14. The slave device of claim 10, wherein the maximum value is set by the master device. 15 . The slave device according to claim 10 , wherein the maximum value is set in consideration of a bus access priority level assigned to the slave device.
16. The slave device of claim 9, wherein the start condition on the serial bus indicates the initiation of a bus arbitration process for a plurality of slave devices requesting attention of the master device on the serial bus.
17. A method comprising: In response to a first start condition on the serial bus, the slave device initiates a first in-band interrupt request to the master device via the serial bus; receiving, from the master device, an acknowledgement of the first in-band interrupt request; resetting, by the slave device in response to the received acknowledgement, a backoff timer to store a backoff time; as well as The slave device waits for the backoff time stored by the backoff timer to expire before initiating a second in-band interrupt request to the master device via the serial bus in response to a second start condition on the serial bus.
18. The method of claim 17, wherein waiting comprises: A number of start conditions on the serial bus that occur after the first start condition and before the second start condition are counted.
19. The method of claim 18, wherein resetting comprises: The backoff time is set to a maximum value, and wherein waiting includes decrementing the backoff time by one in response to each start condition on the serial bus that occurs after the first start condition and before the second start condition.
20. The method of claim 19, wherein the maximum value is set by the master device.
21. The method of claim 19, wherein the maximum value is set in consideration of a bus access priority level assigned to the slave device.
22. The method of claim 17, wherein the start condition on the serial bus indicates initiation of a bus arbitration process for a plurality of slave devices requesting attention of the master device on the serial bus.