GB2598666A - I3C pending read with retransmission - Google Patents

I3C pending read with retransmission Download PDF

Info

Publication number
GB2598666A
GB2598666A GB2111093.7A GB202111093A GB2598666A GB 2598666 A GB2598666 A GB 2598666A GB 202111093 A GB202111093 A GB 202111093A GB 2598666 A GB2598666 A GB 2598666A
Authority
GB
United Kingdom
Prior art keywords
notification message
data
pending read
read notification
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB2111093.7A
Other versions
GB202111093D0 (en
GB2598666B (en
Inventor
Jurski Janusz
David Carrieri Enrico
Kumar Srivastava Amit
A Schnoor Matthew
Loewen Myron
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of GB202111093D0 publication Critical patent/GB202111093D0/en
Publication of GB2598666A publication Critical patent/GB2598666A/en
Application granted granted Critical
Publication of GB2598666B publication Critical patent/GB2598666B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Information Transfer Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A target or slave device 222 has a buffer to hold data to be transmitted to a controller or master device 224 via an Improved Inter Integrated Circuit bus. The target sends a pending read notification 226 to the controller to indicate that the data is available. If the data is not read in a predetermined time, the target sends another pending read notification 226a to the controller. The predetermined time may be a retransmission timeout set in a register in the target. It is greater than the bus idle condition time. The pending read notification may include indications of whether it is a retransmission, the amount of data to be read and a tag. The tag may be used to identify whether the data has been correctly read. The target may provide capability information to the controller indicating that it can send pending read notifications.

Description

I3C PENDING READ WITH RETRANSMISSION 100011 This application claims priority to United States Provisional Patent Application No. 63/067,578, filed on August 19, 2020, in the names of Janusz Jurski; Enrico David Carrieri; Amit Kumar Srivastava; Matthew Schnoor; and Myron Loewen, entitled "13C Pending Read With Retransmission," the disclosure of which is hereby incorporated by reference.
Technical Field
100021 Embodiments of the present disclosure generally relate to the field device interconnects, in particular to communications between master and slave devices using the Improved Inter Integrated Circuit (13 C) specification and protocol.
Background
100031 The I3C protocol, which is maintained via the MIPIO Alliance, is suitable for a broad range of device interconnect applications that include, for example, communications between sensor and memory interfaces.
Brief Description of the Drawin2s
100041 Embodiments will be readily understood by the following detailed description in conjunction with the accompanying drawings. To facilitate this description, like reference numerals designate like structural elements. Embodiments are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings.
100051 FIG. 1 illustrates I3C communication sequences between a slave and a master device with and without read notification errors, in accordance with various embodiments. 100061 FIG. 2 illustrates I3C communications with pending read notification retransmission, in accordance with various embodiments.
[0007] FIG. 3 shows an example process for implementing pending read notification retransmission in a slave device, in accordance with various embodiments.
[0008] FIG. 4 illustrates an example computing device 400 suitable for use with various components of FIGs. 1-3, in accordance with various embodiments.
[0009] FIG. 5 is a block diagram of a system in accordance with an embodiment.
100101 FIG. 6 is a block diagram of a system in accordance with an embodiment.
100111 FIG. 7 depicts a computer-readable storage medium that may be used in conjunction with a computing device, in accordance with various embodiments.
Detailed Description
100121 Embodiments described herein may be directed to apparatus, process, or techniques in a I3C protocol environment that include identifying a pending read notification, which may also be referred to as a pending read notification message, by a slave device to be sent to a master device to indicate that the data is available to be read by the master device from a buffer associated with the slave device. The pending read notification may be subsequently transmitted to the master device. Subsequently, until the data in the buffer has been read by the master device, the slave device may wait an identified amount of time that is less than a value of a timeout of the master device, and retransmit a pending read notification message to the master device, in embodiments, the retransmission may occur until the buffer of the slave device is empty.
100131 In legacy implementations of the I3C 1.1 protocol revision, a mechanism referred to as "pending read notification" is identified where a I3C slave device informs the I3C master that the slave device has data to be read by the master. Once informed, the master then reads the data. However, there are various scenarios, for example a bus communication error, where pending read notifications are lost. This may lead to data sitting in the I3C slave device buffer for an extended period, which will significantly impact a bus performance. For example, loss in bus performance may be due to the master no receiving a valid pending read notification and does not know it may perform the read This time, and thus performance, is lost because the master is waiting longer than it needs to. The master may either wait indefinitely or wait for a timeout indicating that the master has to retry the message exchange (e.g. send a write transfer to get a read transfer). Or, the master will just retry the read without knowing whether the read will work. In these legacy 13 C implementations that include the "pending read notification" protocol, an I3C master may only attempt to read data from the slave upon notification from the slave. 100141 In legacy implementations, the I3C specified bus may have or may involve dissipation of electrical energy, or may be susceptible to outside electromagnetic interference, which may corrupt data on the bus. This may also be referred to as the bus being "lossy." The legacy 13C specification does not have error correction, flow control, or specified recovery mechanisms to deal with corrupted or lost data transferred over the bus. Although there is a mechanism to wait for the master to timeout on a dropped data ready notifications in the I3C specification, this mechanism is not very efficient because resources remain consumed while time prior to the master timeout is wasted. As a result, in these legacy implementations, subsequent messages will be delayed to or from the same slave, and busy resources from the master may prevent initiating traffic to other slaves.
100151 Embodiments described herein may be directed to a mechanism where the I3C slave device with pending read data will periodically notify the master device on the bus until the pending read data of the slave is read. In embodiments, the frequency of the period may be optimized for shorter periods when the bus is idle, or may be made longer if other traffic on the bus is detected. In other embodiments, the notification of pending read data may be immediate if additional data is appended to pending read data queue of the slave.
100161 Embodiments described herein may provide a more robust data transfer mechanism on the I3C bus that will also improve bus throughput performance. In particular, waiting time to retrieve the data from the slave data queue is shortened where there are frequent communication bit errors, for example in electrically noisy environments or when using long cables. In legacy implementations, the master timeout may be in the range of 100 ms, because a slave device on the bus may take a long time to respond. The slave, however, could repeat a pending read notification to a master device as often as every 200 as when the bus is idle. Because there is no communications overhead for correctly received transmissions, there is no downside or minimum bit error rate before this feature is beneficial.
100171 In addition, in embodiments, the master device may avoid unnecessary read attempts. If either the notification message or the address bits in the read transaction experience a bit error, then the master may read the buffer of the wrong slave device. Once the read is complete the master could detect from the content that the response was from the wrong slave. In these embodiments, the master just waits for the repeated notification from the correct slave instead of having to read all potentially active slaves to find the correct slave with pending content. In embodiments, the master may avoid unnecessary read attempts and avoid using any timeouts, saving implementation complexity.
100181 In the following description, various aspects of the illustrative implementations will be described using terms commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art. However, it will be apparent to those skilled in the art that embodiments of the present disclosure may be practiced with only some of the described aspects. For purposes of explanation, specific numbers, materials, and configurations are set forth in order to provide a thorough understanding of the illustrative implementations. It will be apparent to one skilled in the art that embodiments of the present disclosure may be practiced without the specific details. In other instances, well-known features are omitted or simplified in order not to obscure the illustrative implementations.
100191 In the following detailed description, reference is made to the accompanying drawings that form a part hereof, wherein like numerals designate like parts throughout, and in which is shown by way of illustration embodiments in which the subject matter of the present disclosure may be practiced. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. Therefore, the following detailed description is not to be taken in a limiting sense, and the scope of embodiments is defined by the appended claims and their equivalents.
100201 For the purposes of the present disclosure, the phrase "A and/or B" means (A), (B), or (A and B). For the purposes of the present disclosure, the phrase "A, B, and/or C" means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B, and C).
10021] The description may use perspective-based descriptions such as top/bottom, in/out, over/under, and the like. Such descriptions are merely used to facilitate the discussion and are not intended to restrict the application of embodiments described herein to any particular orientation.
100221 The description may use the phrases -in an embodiment," or -in embodiments," which may each refer to one or more of the same or different embodiments. Furthermore, the terms 'comprising," "including," "having," and the like, as used with respect to embodiments of the present disclosure, are synonymous.
100231 The term "coupled with," along with its derivatives, may be used herein. "Coupled" may mean one or more of the following. "Coupled" may mean that two or more elements are in direct physical or electrical contact. However, "coupled" may also mean that two or more elements indirectly contact each other, but yet still cooperate or interact with each other, and may mean that one or more other elements are coupled or connected between the elements that are said to
S
be coupled with each other. The term "directly coupled" may mean that two or more elements are in direct contact.
100241 As used herein, the term "module" may refer to, be part of, or include an Application Specific Integrated Circuit (A SIC), an electronic circuit, a processor (shared, dedicated, or group), and/or memory (shared, dedicated, or group) that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.
100251 FIG. 1 illustrates 13C communication sequences between a slave and a master device with and without read notification errors, in accordance with various embodiments. Diagram 100a shows a communications sequence between a slave 102 and a master 104 that are communicatively coupled by a I3C bus (not shown). There may be other slave devices 102a and master devices 104a coupled to the I3C bus (not shown). The slave 102 issues a pending read notification message 106 to the master 104 to indicate data exists in a queue associated with the slave 102 to be read by the master 104. The master 104 receives the pending read notification message 106 and initiates a data read from the slave 108. In this example, the pending read notification 106 is received by the master 104 intact, e.g. there have been no errors introduced into the pending read notification 106 message during communication. In this example, the master 104 may respond quickly, for example within the response time 110, to the pending read notification 106 by initiating a read data from the slave 108. In this example, the response time 110 may be significantly shorter than a timeout time of the master 104.
10026] Diagram 100b shows a communications sequence between a slave 122 and a master 124 that are communicatively coupled by a I3C bus (not shown). The slave 122 issues a pending read notification message 126 to the master 124 to indicate data exists in a queue of the slave 122 to be read by the master 124. In this example, an error 127 occurs that causes the master 124 to either not receive the pending read notification 126, or to receive a corrupted pending read notification 126. The corrupted pending read notification 126 may include scenarios like bit errors in the read notification, or where the notification is lost. In such a case, the slave 122 will not send new data unless the master 124 reads it spontaneously. For example, the master 124 may implement a timeout and take action if there is no slave 122 response before a timeout time 112 expires. Relying on spontaneous reads of the slave 122 by the master 124 is not very efficient and may take a long time because the timeout time 112 may be set to be large enough for the slowest expected response from any slave 122, 122a. For example, the timeout time 112 may be set to 100 ms as discussed in the management component transport protocol (MCTP) base specification. In embodiments, the timeout time 112 may be much larger, e.g. orders of magnitude larger than the response time 110.
100271 Further with respect to diagram I 00b, if the error 127 corrupts the pending read notification 126 read by the master 124, this may result in the master 124 attempting to read data from an incorrect slave 122a that is also coupled to the BC bus (not shown). In other examples, the message may be discarded or may be mistaken as some other operation. In this case, the data to be read in the queue of the slave 122 will stay there indefinitely, or until some other timeout has occurred.
100281 FIG. 2 illustrates 13C communications with pending read notification retransmission, in accordance with various embodiments. Slave 222 and master 224, which may be similar to slave 122 and master 124 of FIG. 1, maybe communicatively coupled by an I3C bus (not shown). Additional slave 222a and master 224a devices may also be communicatively coupled to the I3C bus. The slave 222 issues a pending read notification message 226 to the master 224 to indicate data exists in a queue of the slave 222 to be read by the master 224. in this example, an error 227 occurs that causes the master 224 to either not receive the pending read notification 226, or to receive a corrupted pending read notification 226 as discussed above.
100291 In embodiments, the slave 222 will continue to retransmit a pending read notification 226a periodically until the master 224 is initiated a read data from slave 228. In particular, the retransmission time of the pending read notification 226a may occur at a time interval 211, which may be substantially shorter than the master 124 timeout time 112. In embodiments, the time interval 211 may be defined when the BC bus is not busy (for example, is idle) and there is data in an output queue of the slave 222. In embodiments, time interval 211 may occur as quickly as the 13C bus idle time of 200 Rs.
100301 In embodiments, it may be possible that retransmissions of the pending read notification 226a may result in a race condition in the master 224 processing the repeated notification after a read data from slave 228 is complete. Such a race condition may happen only if the processing of data by the master device 224 is relatively slow, for example greater than character time on the bus, typically through software handling. If such a race condition occurs, the master 224 may attempt another data read from slave 228, and determine that the slave 222 buffer is empty. If this occurs, the legacy I3C protocol has a mechanism to indicate an empty slave buffer to the master.
[0031] In other embodiments, the transmitted pending read notification 226 and retransmitted pending read notification 226a may be tagged with a data value that indicates whether the notification is a new versus a repeated pending read notification. In embodiments, other bits within the tag may indicate how much data is waiting in the slave 222 read queue, or if there were errors detected. The slave 222 itself may detect an error on the bus through monitoring the bus, for example to determine whether the transmitted data differs from what was intended to be transmitted. For example, when Management Component Transport Protocol (MCTP) packets are transferred over an I3C bus, the tag accompanying the notification may be equal to the "TAG' field in the packet that specifies that the packet is specific to the MCTP.. This allows the master 224 to detect a valid or a non-valid MCTP packet, and to detect a match or a mismatch. These example embodiments may improve the efficiency of communication on the lossy I3C bus.
100321 In other embodiments, the master 224 may read data from the slave 222 for some reason other than receiving a pending read notification 226. This may happen after the error 227, but before the transmitted pending read notification. In this example, the read by the master 224 would clear the timeout for a retransmission of the pending read notification from the slave 222, because the master 224 received the data for which the pending read notification signaled. [0033] FIG. 3 shows an example process for implementing pending read notification retransmission in a slave device, in accordance with various embodiments. Process 300 may be implemented using the components, techniques, and processes described herein, in particular with respect to FIGs. 1-3. Process 300 may be a process to implement a slave device, such as slave 222 of FIG. 2. Process 300 may be implemented as part of a slave operation module 418 of FIG. 4.
100341 At block 302, the process may start.
[0035] At block 304, the process may include identifying a pending read notification message to be sent to a master device coupled with the bus to indicate that the data is available to be read by the master device from a buffer associated with the slave device. In embodiments, the pending read notification message may be similar to pending read notification 226 of FIG. 2, and the master device may be similar to master device 224 of FIG. 2.
100361 At block 306, the process may further include transmitting the pending read notification to the master device. In embodiments, the transmission occurs over an I3C bus that communicatively couples the slave 222 with the master 224. In embodiments, the transmission may occur as an in band interrupt (IBI).
100371 At block 308, the process may further include a determination of whether the data in the slave buffer has been read by the master device. If the data in the buffer of the slave has been read by the master device, then the process may end at block 310.
100381 Otherwise, at block 312, the process may further include waiting and identified amount of time, the identified amount of time being less than a value of a timeout of the master device. In embodiments, the identified amount of time may be similar to the timeout time 211 of FIG. 2. 100391 At block 314, the process may further include retransmitting the pending read notification message to the master device. The process may then return to block 308.
100401 Other embodiments may include a process to implement a master device, such as master device 224, using the components, techniques, and processes described herein. In embodiments, such a process may be implemented by the master operation module 419 of FIG. 4.
100411 FIG. 4 illustrates an example computing device 400 suitable for use with various components of FIGs. 1-3, in accordance with various embodiments. As shown, computing device 400 may include one or more processors or processor cores 402 and system memory 404. For the purpose of this application, including the claims, the terms "processor" and "processor cores" may be considered synonymous, unless the context clearly requires otherwise. The processor 402 may include any type of processors, a microprocessor, and the like. The processor 402 may be implemented as an integrated circuit having multi-cores, e.g., a multi-core microprocessor. 100421 The computing device 400 may include mass storage devices 406 (such as diskette, hard drive, volatile memory (e.g., dynamic random-access memory (DRAM), compact disc read-only memory (CD-ROM), digital versatile disk (DVD), and so forth). In general, system memory 404 and/or mass storage devices 406 may be temporal and/or persistent storage of any type, including, but not limited to, volatile and non-volatile memory, optical, magnetic, and/or solid state mass storage, and so forth. Volatile memory may include, but is not limited to, static and/or dynamic random access memory. Non-volatile memory may include, but is not limited to, electrically erasable programmable read-only memory, phase change memory, resistive memory, and so forth.
[0043] The computing device 400 may further include I/0 devices 408 (such as a display (e.g., a touchscreen display)), keyboard, cursor control, remote control, gaming controller, image capture device, a camera, one or more sensors, and so forth) and communication interfaces 410 (such as network interface cards, serial buses, modems, infrared receivers, radio receivers (e.g., Bluetooth), and so forth).
100441 "[he communication interfaces 410 may include communication chips (not shown) that may be configured to operate the device 400 in accordance with a Global System for Mobile Communication (GSM), General Packet Radio Service (GPRS), Universal Mobile Telecommunications System (UNITS), High Speed Packet Access (HSPA), Evolved HSPA (EHSPA), or Long-Term Evolution (LIE) network. The communication chips may also be configured to operate in accordance with Enhanced Data for GSM Evolution (EDGE), GSM EDGE Radio Access Network (GERAN), Universal Terrestrial Radio Access Network (UTRAN), or Evolved TJTRAN (E-UTRAN). The communication chips may be configured to operate in accordance with Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Digital Enhanced Cordless Telecommunications (DECT), Evolution-Data Optimized (EV-DO), derivatives thereof, as well as any other wireless protocols that are designated as 3G, 4G, SG, and beyond.
[0045] The above-described computing device 400 elements may be coupled to each other via system bus 412, which may represent one or more buses, and which may include, for example, PCIe buses. In other words, all or selected ones of processors 402, memory 404, mass storage 406, communication interfaces 410 and 110 devices 408 may be PCIe devices. In particular, they may be within systems including interconnects incorporated with the teachings of the present disclosure to enable 13C pending read with retransmission, as earlier described. In the case of multiple buses, they may be bridged by one or more bus bridges (not shown). Each of these elements may perform its conventional functions known in the art. In particular, system memory 404 and mass storage devices 406 may be employed to store a working copy and a permanent copy of the programming instructions for the operation of various components of computing device 400, including but not limited to an operating system of computing device 400, one or more applications, and/or system software/firmware in support of practice of the present disclosure, collectively referred to as computing logic 422, having slave operation module 418 and/or a master operation module 419, The various elements may be implemented by assembler instructions supported by processor(s) 402 or high-level languages that may be compiled into such instructions.
100461 The permanent copy of the programming instructions may be placed into mass storage devices 406 in the factory, or in the field through, for example, a distribution medium (not shown), such as a compact disc (CD), or through communication interface 410 (from a distribution server (not shown)). That is, one or more distribution media having an implementation of the agent program may be employed to distribute the agent and to program various computing devices.
100471 The number, capability, and/or capacity of the elements 402, 404, 406, 408, 410, and 412 may vary, depending on whether computing device 400 is used as a stationary computing device, such as a set-top box or desktop computer, or a mobile computing device, such as a tablet computing device, laptop computer, game console, or smartphone. Their constitutions are otherwise known, and accordingly will not be further described.
100481 In embodiments, at least one of processors 402 may be packaged together with computational logic 422 configured to practice aspects of embodiments described herein to form a System in Package (SiP) or a System on Chip (SoC).
10049] In various implementations, the computing device 400 may be one or more components of a data center, a laptop, a netbook, a notebook, an ultrabook, a smartphone, a tablet, a personal digital assistant (PDA), an ultra mobile PC, a mobile phone, a digital camera, or an IoT user equipment. In further implementations, the computing device 400 may be any other electronic device that processes data.
100501 Referring now to FIG. 5, shown is a block diagram of a system in accordance with an embodiment. More specifically, system 500 shown in FIG. 5 represents at least a portion of any one of a variety of different types of computing devices. In different embodiments, such computing devices can range from relatively small low power devices such as a smartphone, tablet computer, wearable device or so forth, to larger devices such as laptop or desktop computers, server computers, automotive infotainment devices and so forth. In any case, system 500 includes a bus 515. In embodiments herein, bus 515 may be implemented as an I3C bus in accordance with one or more I3C specifications. However, understand the scope of the present invention is not limited in this regard and in other embodiments, bus 515 may be implemented as any type of multi-drop interconnect.
[0051] As illustrated, a primary or main master device 520 couples to bus 515. In various embodiments, master device 520 may be implemented as a host controller that includes hardware logic to act as a bus master for bus 515. Master device 520 may include a controller (not shown in the high level view of FIG. 5) to control data (SDA) and clock (SCL). In some cases, master device 520 may be a relatively simple host controller for a low complexity bus or other multi-drop bus, such as in accordance with an I2C or I3C Specification. Other multi-drop interfaces such as Serial Peripheral Interface and/or Microwire also may be present in a particular embodiment.
100521 In different implementations, master device 520 may be an interface circuit of a multicore processor or other SoC, application processor or so forth. In other cases, master device 520 may be a standalone host controller (such as a given integrated circuit (IC)) or main master device for bus 515. And of course other implementations are possible. In other cases, master device 520 may be implemented as hardware, software, and/or firmware or combinations thereof, such as dedicated hardware logic, e.g., a programmable logic, to perform bus master activities for bus 515.
[0053] Note that bus 515 is implemented as a two-wire bus in which a single serial line forms a data interconnect and another single serial line forms a clock interconnect. As such, data communications can occur, e.g., in bidirectional manner and clock communication can occur in a single direction. Master device 520 may be a relatively compute complex device (as compared to other devices on bus 515) that consumes higher power than other devices coupled to bus 515. [0054] As shown in FIG. 5, multiple secondary master devices 5301-530N are present. In various embodiments, secondary master devices 530 (generically) may be implemented as dedicated master or bridge devices such as standalone IC's coupled to bus 515. In other cases, these devices may be independent logic functionality of a SoC or other processor (and in some cases may be implemented in the same IC as master device 520 known as a secondary master). One or more such secondary master devices 530 may be controlled to act as bus master for bus 515 while main master device 520 is in a low power state, to enable bus operations to continue to proceed while in this low power state.
[0055] As further illustrated in FIG. 5, a plurality of slave devices 5401-540N also couple to bus 515. In different embodiments, slave devices 540 (generically) may take many different forms. For purposes of example, slave devices 540 may include one or more of an SoC, network interface circuit (NIC), solid state drive (SSD) or other memory such as a dual inline memory module (DIMM), CPU, or other devices such as sensors, peer-to-peer devices, debug devices or so forth. Understand while shown at this high level in the embodiment of FIG. 5, many variations and alternatives are possible.
[0056] In embodiments, slave devices that support in-band interrupt (IBI) requests may also implement support for a particular pending read notification contract, by which they may inform a master that there is data to be read for a specific purpose. Such a slave, which expects that the master also supports this contract, may indicate its support by retuning a response to a configuration request message. For example, a slave may send a particular value in a message in response to receipt of a capabilities request from the master, which in an embodiment can be sent as a get capabilities (GETCAPS) Format 1 common command code (CCC).
[0057] To signal a pending read notification, the slave may send an ff1 with a mandatory data byte (MDB) value for which the first three bits (i.e., interrupt group identifier) matches a given value. The remaining five bits in the mandatory data byte value (i.e., the specific interrupt identifier) may be specific for a particular type of slave.
[0058] Once the master has accepted the 11131 and read the mandatory data byte from the slave, it may signal acceptance of the master's obligation to read the data as per this contract. The slave can note that the MDB has been read, and make the data available on the next private read request received from the master. However, if the master terminates the IBI before reading the MDB, or if the master NACKs the IBI, then it may not signal acceptance, and the slave may try again at a later time.
[0059] Note that the master also may read any additional data bytes as part of the IBI payload, as the slave may add additional bytes such as hint information specific to the type of slave or its function to provide context or further describe or classify the data that the slave will return on the next private read request. If present, the format and length of any additional bytes in the IBI payload may depend on the specific interrupt identifier.
[0060] Once the IBI and its MDB have been serviced and accepted, the master may initiate a subsequent private read request to the slave, to read the data which has been made available and ready for this private read request. The master may do this immediately after the IBI has been serviced or at a later time. In an embodiment, the private read request may be done in standard data rate (SDR) mode, or in any supported high data rate (HDR) mode using any HDR read command value specific to that HDR mode. The choice of whether to use an HDR mode may be according to a private contract between the master and the slave, or it may be indicated in the specific interrupt identifier or any additional data bytes in the IB1 payload. Once the master has initiated the private read request, it can read the data from the slave, queue it for processing or transfer to its connected host, and retain the association of the data with the TBI notification, including the specific MDB value as well as any additional bytes in the IBI payload.
100611 In an embodiment, a slave may hold only one active pending read notification at any time, while it is waiting for the master to read the data. If the slave is still waiting for the master to initiate a private read request for one pending read notification, then it may not send an LBI with a mandatory data byte value to indicate another pending read notification until after the master has initiated a private read, to consume the data for the first pending read notification. However, the slave may send an IBI with another mandatory data byte value (i.e., one that does not signal a pending read notification) for other reasons, such as reporting error conditions or other types of interrupt events.
1100621 If the master has serviced and accepted the IBI and its MDB, but has not initiated the expected private read request in a timely manner, then the slave may re-transmit the IBI with the same MDB (with additional data bytes, as described above) as a reminder such as described above in FIGs. 2 and 3. Note that the master may not initiate multiple private read requests (i.e., one for each additional IRE with MDB for a pending read notification). Instead, the most recent IBI is the notification to consume the data for the active pending read notification. However, if the master does initiate additional private read requests due to additional IBIs as reminders, then the slave will not accept such requests. Note that the slave may keep the data available for the master to satisfy the expected private read request, unless it encounters an error (e.g., due to delayed read or other conditions). If the slave encounters an error or is unable to return the data, then it may not accept the private read request (i.e., the slave NACKs the read), and also may report this situation as an error (such as an MI with another MDB value).
100631 Referring now FIG. 6, shown is a block diagram of a system in accordance with an embodiment. As shown in the high level view of FIG. 6, system 600 may take the form any type of computing system that includes at least one slave device 610 and at least one master device 650, which are coupled via an I3C bus (implemented with separate clock (SCL) and data (SDA) lines in FIG. 6). More specifically in the high level view of FIG. 6, various details within these devices for handling multiple read notification messages are shown.
100641 With regard to slave device 610, a processing circuit 612, which may be a CPU, GPU, microcontroller, one or more processor cores or other processing or memory circuits, may generate data to be read by master device 650. For a given data unit, the data may be provided for temporary storage in a transmit queue 618, where it may be temporarily stored before it is sent via a driver 638 to master device 650 via the data line.
100651 As further shown, incoming information from master device 650 may be received via the data line in a receiver 632 that in turn couples via a receive queue 616 to processing circuit 612. As further illustrated, an incoming clock signal may be received via the clock line in a receiver 635 that in turn couples to a clock circuit 628. Understand that clock circuit 628 may forward or internally generate one or more clock signals based on this incoming clock signal for provision to various components of slave device 610.
100661 As further illustrated in FIG. 6, slave device 610 also includes a link control circuit 620. In addition to acting as an interface for the I3C bus, link control circuit 620 may include a read notification controller 622 that may generate one or more read notification messages such as an initial pending read notification message and one or more retransmissions of the pending read notification message (also referred to herein as serial pending read notifications). To generate such messages with particular information, read notification controller 622 may access configuration information in a configuration register 625. Such information may include timing information to indicate an interval at which such serial pending read notifications are sent, along with other parameters for such pending read notifications. Still further, read notification controller 622 may generate the pending read notifications with additional information such as the various hint information as described herein.
100671 With reference now to master device 650, a processing circuit 652 is present, which may send commands and other information to slave device 610 via a driver 656. In turn, processing circuit 652 may receive incoming information from slave device 610 via a receiver 658. As further illustrated, master device 650 also includes a link control circuit 655. In embodiments, link control circuit 655 may perform various operations, including read operations in response to incoming pending read notifications as described herein. With further reference to FIG. 6, master device 650 also includes a clock generator 660 which may generate the clock signal that
IS
is sent via a driver 665 to slave device 610. Understand while shown at this high level in the embodiment of FIG 6, many variations and alternatives are possible.
100681 FIG. 7 depicts a computer-readable storage medium that may be used in conjunction with e.g., the computing device 400, in accordance with various embodiments. Diagram 700 illustrates an example non-transitory computer-readable storage media 702 having instructions configured to practice all or selected ones of the operations associated with the processes described above. As illustrated, non-transitory computer-readable storage medium 702 may include a number of programming instructions 704 (e.g., including slave operation module 418 and master operation module 419). Programming instructions 704 may be configured to enable a device, e.g., computing device 400, in response to execution of the programming instructions, to perform one or more operations of the processes described above such as in reference to FIGs. 13, In alternate embodiments, programming instructions 704 may be disposed on multiple non-transitory computer-readable storage media 702 instead. In still other embodiments, programming instructions 704 may be encoded in transitory computer-readable signals.
100691 The following examples pertain to further embodiments.
100701 In one example, an apparatus includes: a first buffer to store data to be transmitted from the apparatus; and a link control circuit coupled to the first buffer to send a pending read notification message to a device coupled to the apparatus via a bus to indicate that the data is available to be read from the first buffer, where if the data has not been read by the device after an identified amount of time, the link control circuit is to send another pending read notification message to the device.
100711 In an example, the identified amount of time is less than an amount of time of a t neout of the device.
100721 In an example, the apparatus further comprises a configuration register to store the identified amount of time.
[0073] In an example, the identified amount of time is greater than or equal to 200 microseconds and less than 100 milliseconds, or where the identified amount of time is greater than or equal to a Bus Idle Condition (truLE), or where the identified amount of time is greater than a value of a retransmission timeout of a slave device.
[0074] In an example, the link control circuit is to send the another pending read notification message to the device including altered contents of the pending read notification message to indicate a retransmission.
[0075] In an example, the link control circuit is to send the pending read notification message including hint information.
100761 In an example, the hint information comprises an indication of the amount of data to be read.
100771 In an example, the link control circuit is to send the pending read notification message including a tag value to be compared to a tag value in the data, the tag value to be used by the device to determine whether the data has been correctly read.
100781 In an example, the apparatus comprises a slave device to provide capability information to the device to indicate a capability of the slave device to send the pending read notification message, the device comprising a master device.
[0079] In an example, the link control circuit is to send an IBI to the device, the IBI comprising the pending read notification message.
[0080] In an example, the link control circuit is to send the another pending read notification message to the device after the device has accepted the MT.
[0081] In an example, the link control circuit is to: send the data to the device in response to a private read request from the device; and send the another pending read notification message after the device has accepted the IBI and the apparatus has not received the private read request within the identified amount of time.
100821 In an example, the link control circuit is to send the pending read notification message to the device when the bus is idle.
100831 In another example, a system comprises: a master device coupled to a slave device via a bus. The master device may include: a receiver to receive information from the bus; a first link control circuit coupled to the receiver, where the first link control circuit is to receive, from the slave device, a pending read notification message, determine, based at least in part on the pending read notification message, whether the pending read notification message is a retransmitted pending read notification message, and in response to the retransmitted pending read notification message initiate a private read request to read data from the slave device The slave device may include: a first buffer to store the data; and a second link control circuit coupled to the first buffer, the second link control circuit to send a pending read notification message to the master device to indicate that the data is available to be read from the first buffer, where if the master device has not read the data after an identified amount of time, the second link control circuit to send the retransmitted pending read notification message to the master device.
100841 In an example, the second link control circuit is to send an IBI to the master device, the ml comprising the pending read notification message, and where the second link control circuit is to send the retransmitted pending read notification message to the master device after the master device has accepted the IBI.
100851 In an example, the second link control circuit is to: send the data to the master device in response to a private read request from the master device; and send the another pending read notification message after the master device has accepted the IBI and the slave device has not received the private read request within the identified amount of time.
100861 In an example, the slave device is to provide capability information to the master device to indicate a capability of the slave device to send the pending read notification message. 100871 In another example, a method includes: identifying, in a slave device, a pending read notification message to be sent to a master device coupled to the slave device via a bus to indicate that data is available to be read by the master device from a buffer; transmitting the pending read notification message to the master device; and until the data in the buffer has been read by the master device: waiting an identified amount of time, the identified amount of time less than a value of a timeout of the master device; and retransmitting the pending read notification message to the master device.
100881 In an example, the method further comprises includes altering contents of the pending read notification message to indicate a retransmission.
100891 In an example, the method further comprises transmitting an IBI to the master device, the B3I comprising the pending read notification message, and retransmitting the pending read notification message after the master device has accepted the IBI.
100901 In another example, a computer readable medium including instructions is to perform the method of any of the above examples. lin another example, a computer readable medium including data is to be used by at least one machine to fabricate at least one integrated circuit to perform the method of any one of the above examples. In another example, an apparatus comprises means for performing the method of any one of the above examples.
[0091] Understand that various combinations of the above examples are possible.
[0092] Various embodiments may include any suitable combination of the above-described embodiments including alternative (or) embodiments of embodiments that are described in conjunctive form (and) above (e.g., the -and" may be -and/or"). Furthermore, some embodiments may include one or more articles of manufacture (e.g., non-transitory computer-readable media) having instructions, stored thereon, that when executed result in actions of any of the above-described embodiments. Moreover, some embodiments may include apparatuses or systems having any suitable means for carrying out the various operations of the above-described embodiments.
100931 The above description of illustrated implementations, including what is described in the Abstract, is not intended to be exhaustive or to limit the embodiments of the present disclosure to the precise forms disclosed. While specific implementations and examples are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the present disclosure, as those skilled in the relevant art will recognize [0094] These modifications may be made to embodiments of the present disclosure in light of the above detailed description. The terms used in the following claims should not be construed to limit various embodiments of the present disclosure to the specific implementations disclosed in the specification and the claims. Rather, the scope is to be determined entirely by the following claims, which are to be construed in accordance with established doctrines of claim interpretation.

Claims (25)

  1. Claims We claim: 1. An apparatus comprising a first buffer to store data to be transmitted from the apparatus; and a link control circuit coupled to the first buffer, the link control circuit to send a pending read notification message to a device coupled to the apparatus via a bus to indicate that the data is available to be read from the first buffer, wherein if the data has not been read by the device after an identified amount of time, the link control circuit is to send another pending read notification message to the device.
  2. 2. The apparatus of claim 1, wherein the identified amount of time is less than an amount of time of a timeout of the device.
  3. 3. The apparatus of either of claims 1 and 2, further comprising a configuration register to store the identified amount of time.
  4. 4. The apparatus of any preceding claim, wherein the identified amount of time is greater than or equal to 200 microseconds and less than 100 milliseconds, or wherein the identified amount of time is greater than or equal to a Bus Idle Condition (t1DLE), or wherein the identified amount of time is greater than a value of a retransmission timeout of a slave device.
  5. 5. The apparatus of any preceding claim, wherein the link control circuit is to send the another pending read notification message to the device including altered contents of the pending read notification message to indicate a retransmission.
  6. 6. The apparatus of any preceding claim, wherein the link control circuit is to send the pending read notification message including hint information.
  7. 7. The apparatus of claim 6, wherein the hint information comprises an indication of the amount of data to be read.
  8. 8. The apparatus of any preceding claim, wherein the link control circuit is to send the pending read notification message including a tag value to be compared to a tag value in the data, the tag value to be used by the device to determine whether the data has been correctly read.
  9. 9. The apparatus of any preceding claim, wherein the apparatus comprises a slave device to provide capability information to the device to indicate a capability of the slave device to send the pending read notification message, the device comprising a master device.
  10. 10. The apparatus of any preceding claim, wherein the link control circuit is to send an in-band nterrupt (IBI) to the device, the 113I comprising the pending read notification message.
  11. 11. The apparatus of claim 10, wherein the link control circuit is to send the another pending read notification message to the device after the device has accepted the LBI.
  12. 12. The apparatus of either of claims 10 and 11, wherein the link control circuit is to: send the data to the device in response to a private read request from the device; and send the another pending read notification message after the device has accepted the TBI and the apparatus has not received the private read request within the identified amount of time.
  13. 13. The apparatus of any one of claims 1-12, wherein the link control circuit is to send the pending read notification message to the device when the bus is idle.
  14. 14. A system comprising: a master device coupled to a slave device via a bus, wherein the master device comprises: a receiver to receive information from the bus; a first link control circuit coupled to the receiver, wherein the first link control circuit is to receive, from the slave device, a pending read notification message, determine, based at least in part on the pending read notification message, whether the pending read notification message is a retransmitted pending read notification message, and in response to the retransmitted pending read notification message initiate a private read request to read data from the slave device; and the slave device coupled to the master device via the bus, the slave device comprising: a first buffer to store the data; and a second link control circuit coupled to the first buffer, the second link control circuit to send a pending read notification message to the master device to indicate that the data is available to be read from the first buffer, wherein if the master device has not read the data after an identified amount of time, the second link control circuit to send the retransmitted pending read notification message to the master device.
  15. 15. The system of claim 14, wherein the second link control circuit is to send an in-band interrupt (BI) to the master device, the ml comprising the pending read notification message, and wherein the second link control circuit is to send the retransmitted pending read notification message to the master device after the master device has accepted the IBI.
  16. 16. The system of claim 15, wherein the second link control circuit is to: send the data to the master device in response to a private read request from the master device; and send the another pending read notification message after the master device has accepted the IBI and the slave device has not received the private read request within the identified amount of time.
  17. 17. The system of any of claims 14 to 16, wherein the slave device is to provide capability information to the master device to indicate a capability of the slave device to send the pending read notification message.
  18. 18. A method comprising: identifying, in a slave device, a pending read notification message to be sent to a master device coupled to the slave device via a bus to indicate that data is available to be read by the master device from a buffer; transmitting the pending read notification message to the master device; and until the data in the buffer has been read by the master device: waiting an identified amount of time, the identified amount of time less than a value of a timeout of the master device; and retransmitting the pending read notification message to the master device.
  19. 19 The method of claim 18, further comprising altering contents of the pending read notification message to indicate a retransmission.
  20. 20. The method of claim 18 or claim 19, further comprising transmitting an in-band interrupt (LBI) to the master device, the IBI comprising the pending read notification message, and retransmitting the pending read notification message after the master device has accepted the IBI.
  21. 21. A computer-readable storage medium including computer-readable instructions, when executed, to implement a method as claimed in any one of claims 18 to 20.
  22. 22. An apparatus comprising means to perform a method as claimed in any one of claims 18 to 20.
  23. 23. An apparatus comprising: first buffer means for storing data to be transmitted from the apparatus; and link control means coupled to the first buffer means, the link control means for sending a pending read notification message to a device coupled to the apparatus via bus means to indicate that the data is available to be read from the first buffer means, wherein if the data has not been read by the device after an identified amount of time, the link control means is to send another pending read notification message to the device.
  24. 24. The apparatus of claim 23, further comprising configuration register means for storing the identified amount of time.
  25. 25. The apparatus of claim 23 or claim 24, wherein the identified amount of time is greater than or equal to 200 microseconds and less than 100 milliseconds, or wherein the identified amount of time is greater than or equal to a Bus Idle Condition (tIDLE), or wherein the identified amount of time is greater than a value of a retransmission timeout of a slave device.
GB2111093.7A 2020-08-19 2021-08-02 I3C pending read with retransmission Active GB2598666B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063067578P 2020-08-19 2020-08-19
US17/128,384 US12013806B2 (en) 2020-08-19 2020-12-21 I3C pending read with retransmission

Publications (3)

Publication Number Publication Date
GB202111093D0 GB202111093D0 (en) 2021-09-15
GB2598666A true GB2598666A (en) 2022-03-09
GB2598666B GB2598666B (en) 2022-11-02

Family

ID=75383741

Family Applications (1)

Application Number Title Priority Date Filing Date
GB2111093.7A Active GB2598666B (en) 2020-08-19 2021-08-02 I3C pending read with retransmission

Country Status (5)

Country Link
US (2) US12013806B2 (en)
EP (1) EP4200715A1 (en)
GB (1) GB2598666B (en)
NL (1) NL2028891B1 (en)
WO (1) WO2022039881A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12013806B2 (en) 2020-08-19 2024-06-18 Intel Corporation I3C pending read with retransmission

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140321700A1 (en) * 2013-04-29 2014-10-30 Lite-On Semiconductor Corporation Light sensing module and system
US20160364353A1 (en) * 2013-09-09 2016-12-15 Qualcomm Incorporated I3c high data rate (hdr) always-on image sensor 8-bit operation indicator and buffer over threshold indicator
WO2017189206A1 (en) * 2016-04-27 2017-11-02 Qualcomm Incorporated I3c high data rate (hdr) always-on image sensor 8-bit operation indicator and buffer over threshold indicator
US20190108149A1 (en) * 2017-10-10 2019-04-11 Qualcomm Incorporated I3c in-band interrupts directed to multiple execution environments

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282572B1 (en) 1994-05-04 2001-08-28 Telefonaktieboalget Lm Ericsson (Publ) Providing a master device with slave device capability information
US7089369B2 (en) 2003-03-31 2006-08-08 Sun Microsystems, Inc. Method for optimizing utilization of a double-data-rate-SDRAM memory system
US8385354B2 (en) 2011-07-18 2013-02-26 Telefonaktiebolaget L M Ericsson (Publ) Scalable hardware mechanism to implement time outs for pending POP requests to blocking work queues
US9251108B2 (en) 2012-11-05 2016-02-02 International Business Machines Corporation Managing access to shared buffer resources
US10769084B2 (en) 2016-12-22 2020-09-08 Intel Corporation Out-of band interrupt mapping in MIPI improved inter-integrated circuit communication
US20180293196A1 (en) 2017-04-10 2018-10-11 Intel Corporation System, Apparatus And Method For Link Training For A Multi-Drop Interconnect
US10331612B1 (en) * 2018-01-09 2019-06-25 Apple Inc. Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors
US10853289B2 (en) 2018-12-17 2020-12-01 Intel Corporation System, apparatus and method for hardware-based bi-directional communication via reliable high performance half-duplex link
US11137913B2 (en) * 2019-10-04 2021-10-05 Hewlett Packard Enterprise Development Lp Generation of a packaged version of an IO request
US12013806B2 (en) 2020-08-19 2024-06-18 Intel Corporation I3C pending read with retransmission

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140321700A1 (en) * 2013-04-29 2014-10-30 Lite-On Semiconductor Corporation Light sensing module and system
US20160364353A1 (en) * 2013-09-09 2016-12-15 Qualcomm Incorporated I3c high data rate (hdr) always-on image sensor 8-bit operation indicator and buffer over threshold indicator
WO2017189206A1 (en) * 2016-04-27 2017-11-02 Qualcomm Incorporated I3c high data rate (hdr) always-on image sensor 8-bit operation indicator and buffer over threshold indicator
US20190108149A1 (en) * 2017-10-10 2019-04-11 Qualcomm Incorporated I3c in-band interrupts directed to multiple execution environments

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MIPI Alliance, Specification for I3C Basic, Version 1.1.1, 9 June 2021, Section 5.1.6.2.2, pages 86-87 *

Also Published As

Publication number Publication date
US20240281403A1 (en) 2024-08-22
WO2022039881A1 (en) 2022-02-24
US20210109887A1 (en) 2021-04-15
NL2028891B1 (en) 2022-07-05
NL2028891A (en) 2022-04-08
US12013806B2 (en) 2024-06-18
GB202111093D0 (en) 2021-09-15
GB2598666B (en) 2022-11-02
EP4200715A1 (en) 2023-06-28

Similar Documents

Publication Publication Date Title
US11176068B2 (en) Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US10372199B2 (en) Apparatus for managing power and running and booting an inter-processor communication link between independently operable processors
US11010327B2 (en) I3C point to point
US20240281403A1 (en) I3c pending read with retransmission
US20210011785A1 (en) Methods and apparatus for correcting out-of-order data transactions between processors
US8082373B2 (en) Specialized universal serial bus controller
US11474736B2 (en) Network interface controller with non-volatile random access memory write packet log
US9268731B2 (en) Controlling devices via advance notice signaling
JP2001236304A (en) Microcomputer
US8335867B1 (en) Method and apparatus for reducing host processor activity during interaction with peripheral devices
EP2923276A1 (en) Instant communication error indication from slave
US9473273B2 (en) Memory system capable of increasing data transfer efficiency
WO2023207571A1 (en) Data transmission method and device
CN116627869B (en) Data transmission method and device applied to electronic equipment
US20200201804A1 (en) I3c device timing adjustment to accelerate in-band interrupts
US6948025B2 (en) System and method for transferring data between an IEEE 1394 device and a SCSI device
WO2023129317A1 (en) Valid signal for latency sensitive die-to-die (d2d) interconnects
US8214448B2 (en) Optimized utilization of DMA buffers for incoming data packets in a network protocol
WO2022086798A1 (en) Repeated in sequence packet transmission for checksum comparison
TWI847784B (en) Method for performing link management of memory device in predetermined communications architecture with aid of handshaking phase transition control, memory device, electronic device, and memory controller of memory device
WO2010070530A1 (en) Electronic apparatus comprising a common bus
CN111913897A (en) PCI bus controller based on FPGA and control method
WO2012093475A1 (en) Information transfer device and information transfer method of information transfer device
CN117234971A (en) IPMI command transmission method, device, system and electronic equipment
CN117573209A (en) Interrupt aggregation method and device based on hardware