WO2018120780A1 - Procédé et système pour interruption pcie - Google Patents
Procédé et système pour interruption pcie Download PDFInfo
- Publication number
- WO2018120780A1 WO2018120780A1 PCT/CN2017/093470 CN2017093470W WO2018120780A1 WO 2018120780 A1 WO2018120780 A1 WO 2018120780A1 CN 2017093470 W CN2017093470 W CN 2017093470W WO 2018120780 A1 WO2018120780 A1 WO 2018120780A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- interrupt
- interface
- cfg
- signal
- type
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
Definitions
- the embodiments of the present invention relate to the field of communications technologies, and in particular, to a PCIe interrupt method and system.
- PCIe Peripheral Component Interconnect Express
- PCIe Peripheral Component Interconnect Express
- Pin-based PCI interrupts also known as INTx interrupts
- INTx interrupts are often shared between several devices.
- the core must call every interrupt handler associated with the interrupt, which is less efficient.
- the interrupt handler When the device writes data to the memory and then initiates a pin interrupt, it is possible that the data has not yet reached the memory when the CPU receives the interrupt (the device behind the PCI-PCI bridge is more likely to do so).
- the interrupt handler must poll a register of the device that generated the interrupt, and the PCI transaction-preserving rules will ensure that the register will return a value after all data has reached memory.
- Each functional device of PCI supports only one pin-based interrupt.
- the driver often needs to query the device to determine the event that occurs, which reduces the efficiency of interrupt processing. Therefore, the MSI interrupt is used in the PCIe system.
- the MSI interrupt is not shared, so there is no shared problem in the INTx interrupt.
- the write operation that generates the interrupt cannot exceed the data write operation, so when the interrupt is generated, the driver can be sure that all data has arrived in memory.
- the MSI interrupt is implemented by writing a specific value to a specific address, and can support up to 32 interrupt vectors, but the MSI interrupt has a constraint that the interrupt vector number must be consecutive. In order to solve this problem, MSI-X has also been proposed, compared with the MSI Capability register.
- the MSI-X Capability register uses an array to hold the Message Address field and the Message Data field instead of putting these two fields into the Capability register.
- each interrupt request can use a separate Message Address field and a Message Data field.
- MSI-X does not require interrupt vector number continuation and can support up to 2048 interrupt vectors.
- Different processors have different interpretations of MSI messages sent by PCIE devices.
- the PCIe device writes the Message Data data to the address of the Message Address in the MSI/MSI-X Capability structure to form a memory write TLP, and submits an interrupt request to the processor.
- the type of interrupt supported by the driver may be one or more of a traditional INTx interrupt, an MSI interrupt, or an MSI-X interrupt.
- the hardware logic only completes some kind of interrupt that matches it, and discards the other two types of interrupts. This will result in changes in the types of interrupts that may be supported during subsequent driver platform upgrades, resulting in the underlying FPGA developers having to adapt the functions to match the software upgrades, thereby increasing project cycle and maintainability. Conducive to the platform implementation of the project.
- Embodiments of the present invention provide a PCIe interrupt method and system to extend FPGA compatibility with processor interrupts.
- an embodiment of the present invention provides a PCIe interrupt method, where data communication is implemented between a FPGA and a processor through a PCIe interface, and the method includes:
- an interrupt type configured in the FPGA, where the interrupt type includes at least one of an INTx interrupt type, an MSI interrupt type, and an MSI-X interrupt type;
- the PCIe interrupt data is transmitted through the transmission interface.
- the method further includes:
- the interrupt type of the FPGA is configured, and the PCIe interface is configured to be a full-type mode, wherein the full-type mode supports all of the interrupt types.
- the step of determining, according to the type of the interrupt, the transmission interface corresponding to the PCIe interrupt data includes:
- interrupt type MSI-X interrupt
- transmission interface is an AXI4-S interface
- the interrupt type is an MSI interrupt, it is determined that the transport interface is a CFG_INT interface;
- interrupt type is an INTx interrupt
- transport interface is a CFG_INT interface
- the processing timing of sending the PCIe interrupt data through the transmission interface includes: an INTx interrupt execution flow and an MSI interrupt execution flow;
- the INTx interrupt execution flow includes:
- the cfg_interrupt_rdy signal of the CFG_INT interface is set high by the CPU, the cfg_interrupt signal is set to a high level, and the cfg_interrupt_assert signal is set to a low level;
- the MSI interrupt execution process includes:
- the cfg_interrupt_rdy signal of the CFG_INT interface is detected to be set high by the CPU, the cfg_interrupt signal and the cfg_interrupt_di signal are set to the second flag bit as the interrupt request;
- the processing sequence of sending the PCIe interrupt data through the transmission interface includes:
- s_ais_tx_tready signal of the AXI4-S interface When the s_ais_tx_tready signal of the AXI4-S interface is detected to be set high by the CPU, it indicates that the currently transmitted data is received. When s_axis_tx_tlast is set to high level, it indicates that it is the last interrupt data transmission;
- s_ais_tx_tready signal of the AXI4-S interface is detected to be high by the CPU, indicating that the entire interrupt data transfer is completed, s_axis_tx_tvalid, s_axis_tx_tlast, s_axis_tx_tdata, s_axis_tx_tkeep are set low.
- the embodiment of the present invention further provides a PCIe interrupt system, wherein the FPGA and the processor implement data communication through a PCIe interface, and the system includes: an interrupt control module and a PCIe interface module;
- the interrupt control module is configured to receive an interrupt request, acquire an interrupt type configured in the FPGA, generate PCIe interrupt data according to the interrupt type, and determine a transmission interface on the PCIe interface module according to the interrupt type,
- the interrupt type includes at least one of an INTx interrupt type, an MSI interrupt type, and an MSI-X interrupt type;
- the interrupt control module transmits the PCIe interrupt data through the transmission interface.
- An interrupt configuration module configured to configure an interrupt type of the FPGA
- the PCIe interface module is further configured to configure the PCIe interface to be a full-type mode, wherein the full-type mode supports all of the interrupt types.
- interrupt control module is further configured to:
- the transmission interface is an AXI4-S interface
- the interrupt type is an MSI interrupt, determining that the transport interface is a CFG_INT interface;
- the transport interface is the CFG_INT interface.
- the processing timing of sending the PCIe interrupt data through the transmission interface includes: an INTx interrupt execution flow and an MSI interrupt execution flow;
- the INTx interrupt execution flow includes:
- the cfg_interrupt_rdy signal of the CFG_INT interface is set high by the CPU, the cfg_interrupt signal is set to a high level, and the cfg_interrupt_assert signal is set to a low level;
- the MSI interrupt execution process includes:
- the cfg_interrupt_rdy signal of the CFG_INT interface is detected to be set high by the CPU, the cfg_interrupt signal and the cfg_interrupt_di signal are set to the second flag bit as the interrupt request;
- the processing sequence of sending the PCIe interrupt data through the transmission interface includes:
- s_ais_tx_tready signal of the AXI4-S interface When the s_ais_tx_tready signal of the AXI4-S interface is detected to be set high by the CPU, it indicates that the currently transmitted data is received. When s_axis_tx_tlast is set to high level, it indicates that it is the last interrupt data transmission;
- s_ais_tx_tready signal of the AXI4-S interface is detected to be high by the CPU, indicating that the entire interrupt data transfer is completed, s_axis_tx_tvalid, s_axis_tx_tlast, s_axis_tx_tdata, s_axis_tx_tkeep are set low.
- the embodiment of the invention receives the interrupt request, acquires the configured interrupt type in the FPGA, generates the PCIe interrupt data according to the interrupt type, and determines the transmission interface corresponding to the PCIe interrupt data on the PCIe interface according to the interrupt type; and sends the PCIe interrupt data through the transmission interface.
- Expanded FPGA compatibility with CPU interrupts Moreover, each interrupt function can be independently developed and maintained, and has no influence on each other, which reduces the development difficulty, and helps to realize the logical platform construction of the FPGA, and also ensures the platform construction of the driver layer from the bottom layer.
- FIG. 1 is a flowchart of a PCIe interrupt method according to Embodiment 1 of the present invention.
- FIG. 2 is a schematic structural diagram of a PCIe interrupt system according to Embodiment 1 of the present invention.
- FIG. 3 is a flowchart of a PCIe interrupt method according to Embodiment 2 of the present invention.
- FIG. 5 is a timing diagram of PCIe interrupt processing in Embodiment 2 of the present invention.
- FIG. 6 is a schematic structural diagram of a PCIe interrupt data packet in Embodiment 2 of the present invention.
- FIG. 7 is a schematic structural diagram of a PCIe interrupt system according to Embodiment 3 of the present invention.
- FIG. 8 is a schematic structural diagram of a PCIe interrupt system according to another example in Embodiment 3 of the present invention.
- FIG. 1 is a flowchart of a method for interrupting a PCIe according to a first embodiment of the present invention.
- the present embodiment is applicable to a PCIe interrupt.
- the method may be implemented by a PCIe interrupt system in the embodiment of the present invention. / or hardware implementation.
- a PCIe interrupt system in the embodiment of the present invention.
- it usually includes a CPU processor, which is the core device that responds to various computing processing requirements.
- the system may also include various peripherals such as a keyboard, mouse, display, ultrasound probe or memory, and the like.
- an FPGA Field-Programmable Gate Array
- the auxiliary peripheral device initiates an interrupt request to the CPU, or
- the FPGA acquires the data in the CPU, sends an interrupt to the CPU, and asks the CPU to perform data processing for itself.
- Data communication between the FPGA and the CPU is performed through the PCIe interface.
- the method specifically includes the following steps:
- This interrupt request acts as an internal interrupt request for the FPGA and is an operation prompt to start interrupting the data transfer.
- the normal data is data that needs to be processed by a processor.
- the specific process is: the peripheral device acquires common data (if the peripheral device is an ultrasonic probe, the ordinary data can be an ultrasonic signal), and the data is transmitted to the FPGA, and the FPGA includes a data transmission module and a receiving module.
- the receiving module is configured to receive normal data transmitted by the peripheral device, and the data transmission module is configured to send the normal data acquired by the peripheral device to the memory through the AXI4-S interface.
- the memory and processor belong to the same device, the processor is responsible for computing and processing, and the memory is responsible for data exchange.
- the data transmission module After the data transmission module transmits all the data to the memory, the data transmission module sends the prompt information that the data has been completely transmitted to the memory, and the receiving module receives the prompt information.
- the interrupt request in this embodiment refers to the data transmission module transmitting data to the memory. After the data transmission is completed, the receiving module receives the prompt information that the data transmission is completed, that is, the interrupt request.
- an interrupt type configured in the FPGA, where the interrupt type includes at least one of an INTx interrupt type, an MSI interrupt type, and an MSI-X interrupt type.
- the interrupt type configured in the FPGA is that the FPGA selects an interrupt type that the processor can process according to an interrupt type that the processor can process. If there is more than one interrupt type that satisfies the interrupt type that the processor can handle, the optimal interrupt type is selected (the MSI-X interrupt type is better than the MSI interrupt type, and the MSI interrupt type is better than the INTx interrupt type).
- the interrupt type configured in the FPGA may be an INTx interrupt type and an MSI interrupt type, or may be an INTx interrupt type, an MSI interrupt type, and an MSI-X interrupt type, and may also be an INTx interrupt type and an MSI-X interrupt type. This embodiment does not limit this.
- the transmission interface is configured to transmit interrupt data, and the interrupt data is used to notify the processor that normal data transmission is completed. Because the interrupt type is different, the corresponding PCIe interrupt data is also different, so it is necessary to generate corresponding PCIe interrupt data according to the interrupt type.
- the interrupt data may be the information defined by the device memory PCIe standard, or may be the address of the interrupt vector, which is not limited in this embodiment.
- the transmission interfaces corresponding to the different types of interrupts are also different. Therefore, the transmission interface corresponding to the PCIe interrupt data on the PCIe interface needs to be determined according to the type of the interrupt. For example, if the interrupt type is INTx interrupt type, the corresponding transport interface is the CFG_INT interface; if the interrupt type For the MSI-X interrupt type, the corresponding transport interface is the AXI4-S interface.
- interrupt transmission interfaces corresponding to various interrupt types are as follows:
- the processor starts the interrupt operation after receiving the PCIe interrupt data.
- the peripheral device is an ultrasonic probe
- the ultrasonic probe acquires an ultrasonic signal that needs to be processed by the processor, and transmits the ultrasonic signal to the FPGA
- the data transmission unit in the FPGA transmits the ultrasonic signal to the AXI4-S interface.
- the data transfer unit sends a prompt message for completing the data transfer to the receiving module, that is, sends an interrupt request to the receiving module of the FPGA.
- the PCIe interrupt system includes an interrupt configuration module and an interrupt processing module.
- the driver layer acquires the type of interrupt that the processor can handle, and the interrupt configuration module configures the corresponding interrupt type, and the interrupt processing module configures the corresponding transmission interface according to the type of interrupt that the processor can handle.
- the PCIe interrupt data corresponding to the interrupt type is sent to the PCIe IP core through the corresponding transport interface, and the PCIe IP core sends the data to the PCIe root controller in the processor.
- the processor interrupt request is sent to the processor to implement the interrupt operation.
- the PCIe root controller acts as a hub for connecting CPU/memory and external devices.
- the root controller is at the core of the entire PCIe architecture.
- a root controller can support one or more PCIe ports. Each port defines a separate domain, each domain consisting of a single terminal, or a subsystem containing one or more switches and terminals. At the same time, according to the agreement, the root controller can support the function of packet routing between different domains according to specific choices.
- the technical solution of the embodiment receives the internal interrupt request through the FPGA, acquires the configured interrupt type in the FPGA, generates the PCIe interrupt data according to the interrupt type, and determines the transmission interface corresponding to the PCIe interrupt data on the PCIe interface according to the interrupt type; Send PCIe interrupt data.
- each interrupt function can be independently developed and maintained, and has no influence on each other, which reduces the development difficulty, and helps to realize the logical platform construction of the FPGA, and also ensures the platform construction of the driver layer from the bottom layer.
- the method before the step of receiving an interrupt request, the method further includes: configuring an interrupt type of the FPGA, and configuring The PCIe interface is a full type mode, wherein the full type mode supports all of the interrupt types.
- the method in this embodiment specifically includes the following steps:
- the interrupt type of the FPGA may be an INTx interrupt type, an MSI interrupt type, or an MSI-X interrupt type.
- the FPGA configures an interrupt type of the FPGA according to an interrupt type that the CPU can process.
- the interrupt type that the CPU can process is the INTx interrupt type
- the interrupt type of the FPGA is configured as the INTx interrupt type.
- the full-type mode is a data transmission that can support an INTx interrupt type, an MSI interrupt type data transmission, and an MSI-X interrupt type data transmission.
- the FPGA can provide the corresponding transmission interface as needed.
- DDR Double Data Rate, Double Rate Synchronous Dynamic Random Access Memory
- DMU Direct Memory Unit
- the configuration parameters include information such as transmission data length, destination address, channel number, and interrupt enable.
- the data transmission module in the FPGA uploads data to the CPU DDR main memory through the PCIe interface through DMA (Direct Memory Access), and the data transmission module sends the data transmission module to the receiving module in the FPGA.
- DMA Direct Memory Access
- the step of determining, according to the type of the interrupt, the transmission interface corresponding to the PCIe interrupt data includes:
- interrupt type MSI-X interrupt
- transmission interface is an AXI4-S interface
- the interrupt type is an MSI interrupt, it is determined that the transport interface is a CFG_INT interface;
- interrupt type is an INTx interrupt
- transport interface is a CFG_INT interface
- the MSI interrupt request is to write the data contained in the Message Data field to the address where the Message Address is located.
- the MSI-X interrupt mechanism stores a pointer to a set of Message Address and Message Data fields in the MSI-X Capablity structure, so that a PCIe device can support more than 32 MSI-X interrupt requests and does not require an interrupt vector. The number is continuous.
- the set of Message Address and Message Data fields used by the MSI-X mechanism are stored in the BAR space of the PCIe device, rather than in the configuration space of the PCIe device, so that the number of MSI-X interrupt requests can be determined by the user.
- the interrupt vector table corresponding to the MSI-X interrupt type exists in User Logic, and the User terminal can only be implemented by sending the MWr TLP packet containing the interrupt information, so the MSI-X interrupt must pass. Operate the AXI4-S interface implementation.
- the MSI interrupt type is stored in the PCIe Capability Structure and can be implemented by sending a MWr TLP packet or by operating the CFG_INT interface.
- the INTx interrupt type must be implemented by manipulating the CFG_INT interface.
- Interrupt The detailed processing flow of Interrupt is as follows: CPU configures the interrupt type; enables the corresponding module according to the configuration type; when the interrupt request comes, the enabled module executes the corresponding interrupt flow; the interrupt execution is completed, the idle state is returned, and the next interrupt is awaited. operating.
- the processing timing of sending the PCIe interrupt data through the transmission interface includes: an INTx interrupt execution flow and an MSI interrupt execution flow;
- the INTx interrupt execution flow includes:
- the cfg_interrupt_rdy signal of the CFG_INT interface is set high by the CPU, the cfg_interrupt signal is set to a high level, and the cfg_interrupt_assert signal is set to a low level;
- the interrupt is committed by configuring the interfaces cfg_interrupt and cfg_interrupt_assert.
- cfg_interrupt_rdy is asserted, indicating that the interrupt request is accepted.
- the position shown in 2 in the figure is that the INTx interrupt request is received, and at the rising edge of the clock output, the interrupt set signal (cfg_interrupt_assert signal), the interrupt request signal (cfg_interrupt signal), and the interrupt response signal ( The cfg_interrupt_rdy signal) is high.
- the position shown in Figure 3 is to release the INTx interrupt request.
- the interrupt request signal (cfg_interrupt signal) is high
- the interrupt set signal (cfg_interrupt_assert signal) is low
- the interrupt response signal (cfg_interrupt_rdy) The signal) is high and it is determined that the CPU responds to the INTx interrupt request.
- the MSI interrupt execution process includes:
- the cfg_interrupt signal and the cfg_interrupt_di signal of the CFG_INT interface are set to a first flag, and the cfg_interrupt signal is set high and the cfg_interrupt_di signal is set to 01h.
- the cfg_interrupt_rdy signal of the CFG_INT interface is detected to be set high by the CPU, the cfg_interrupt signal and the cfg_interrupt_di signal are set to the second flag bit as the interrupt request;
- the cfg_interrupt signal and the cfg_interrupt_di signal are set to the second flag bit to set the cfg_interrupt signal and set the cfg_interrupt_di signal to 00h.
- the position shown in FIG. 5 is that the MSI interrupt request is received.
- the interrupt request signal (cfg_interrupt signal) of the CFG_INT interface is high, and the input data signal is interrupted (cfg_interrupt_di).
- the signal) is 01h and the interrupt response signal (cfg_interrupt_rdy signal) is high.
- the position shown in Figure 4 is to release the MSI interrupt request.
- the interrupt request signal (cfg_interrupt signal) of the CFG_INT interface is high, the interrupt input data signal (cfg_interrupt_di signal) is 00h, and the interrupt response signal ( The cfg_interrupt_rdy signal) is high, and it is determined that the CPU responds to the MSI interrupt request.
- the processing sequence for sending the PCIe interrupt data by using the transmission interface includes:
- the ASI4-S complies with the standard AXI4-Stream specification, in which the interrupt address and interrupt data are included in the data packet, and are pre-RC configured to the FPGA internal module.
- the packet format needs to comply with the PCIe TLP data structure provided by Xilinx.
- s_ais_tx_tready signal of the AXI4-S interface When the s_ais_tx_tready signal of the AXI4-S interface is detected to be set high by the CPU, it indicates that the currently transmitted data is received. When s_axis_tx_tlast is set to high level, it indicates that it is the last interrupt data transmission;
- s_ais_tx_tready signal of the AXI4-S interface is detected to be high by the CPU, indicating that the entire interrupt data transfer is completed, s_axis_tx_tvalid, s_axis_tx_tlast, s_axis_tx_tdata, s_axis_tx_tkeep are set low.
- the data transmission between the PCIe core and the PCIe Root Complex is implemented through the AXI4-S interface.
- the position shown in FIG. 1 is the AXI4-S interface data transmission completion.
- s_axis_tx_tvalid, s_axis_tx_tlast, and s_axis_tx_tready are high, indicating that the transmission is completed.
- the packet format follows the PCIe TLP data structure provided by Xilinx, where the transport type field (TC field) defines the transport type of the message, the TD bit indicates whether the TLP Digest in the TLP is valid, and the EP bit indicates the current TLP. Whether the data in the message is valid, the message model field defines the message Model, the payload of the message (Length), that is, the number of double words (DW) to be read.
- the first tag consists of eight bits, which determines that the sender can temporarily store 256 TLPs of the same type. The application layer needs to be based on The payload and address of the message, and the completion message is used to return the corresponding data.
- the interrupt type of the FPGA is configured, and the PCIe interface is configured to be a full-type mode, wherein the full-type mode supports all the interrupt types. It can guarantee that no matter what type of CPU (ARM, x86, PowerPC, etc.) is used on the CPU side, no matter which type of interrupt (INTx, MSI, MSI-X) is supported, the FPGA side can support and enhance the FPGA pair.
- the compatibility of the interrupt type realizes the consistency of the interface and the standardization of the interrupt processing between the CPU and the PCIe, and at the same time, the FPGA platform construction can be improved.
- FIG. 7 is a schematic structural diagram of a PCIe interrupt system according to Embodiment 3 of the present invention, where the system is configured to execute a PCIe interrupt method. As shown in FIG. 7, the data communication is implemented between the FPGA and the processor through the PCIe interface.
- the PCIe interrupt system specifically includes an interrupt control module 310 and a PCIe interface module 320.
- the interrupt control module 310 is configured to receive an interrupt request, acquire an interrupt type configured in the FPGA, generate PCIe interrupt data according to the interrupt type, and determine the PCIe interface module 320 according to the interrupt type. Transmission interface, wherein the interrupt type includes at least one of an INTx interrupt type, an MSI interrupt type, and an MSI-X interrupt type;
- the interrupt control module 310 transmits the PCIe interrupt data through the transmission interface.
- the method further includes: an interrupt configuration module 330, configured to configure an interrupt type of the FPGA.
- the PCIe interface module is further configured to configure the PCIe interface to be a full-type mode, wherein the full-type mode supports all of the interrupt types.
- the interrupt control module is further configured to:
- the transmission interface is an AXI4-S interface
- the interrupt type is an MSI interrupt, determining that the transport interface is a CFG_INT interface;
- the transport interface is the CFG_INT interface.
- the processing timing of sending the PCIe interrupt data through the transmission interface includes: an INTx interrupt execution flow and an MSI interrupt execution flow;
- the INTx interrupt execution flow includes:
- the cfg_interrupt_rdy signal of the CFG_INT interface is set high by the CPU, the cfg_interrupt signal is set to a high level, and the cfg_interrupt_assert signal is set to a low level;
- the MSI interrupt execution process includes:
- the cfg_interrupt_rdy signal of the CFG_INT interface is detected to be set high by the CPU, the cfg_interrupt signal and the cfg_interrupt_di signal are set to the second flag bit as the interrupt request;
- the processing sequence for sending the PCIe interrupt data by using the transmission interface includes:
- s_ais_tx_tready signal of the AXI4-S interface When the s_ais_tx_tready signal of the AXI4-S interface is detected to be set high by the CPU, it indicates that the currently transmitted data is received. When s_axis_tx_tlast is set to high level, it indicates that it is the last interrupt data transmission;
- s_ais_tx_tready signal of the AXI4-S interface is detected to be high by the CPU, indicating that the entire interrupt data transfer is completed, s_axis_tx_tvalid, s_axis_tx_tlast, s_axis_tx_tdata, s_axis_tx_tkeep are set low.
- the technical solution of the embodiment receives the interrupt request, acquires the configured interrupt type in the FPGA, generates the PCIe interrupt data according to the interrupt type, and determines the transmission interface corresponding to the PCIe interrupt data on the PCIe interface according to the interrupt type; and sends the PCIe through the transmission interface.
- Interrupt data Expanded FPGA compatibility with processor interrupts. And each interrupt function can be independently developed and maintained, and each other There will be no impact between them, which will reduce the development difficulty, and help to realize the logical platform construction of FPGA, and also ensure the platform construction of the driver layer from the bottom.
- the above product can perform the method provided by any embodiment of the present invention, and has the corresponding functional modules and beneficial effects of the execution method.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
L'invention concerne un procédé et un système pour une interruption PCIe. Le procédé comporte les étapes consistant à: recevoir une demande d'interruption (S110); acquérir le type d'une interruption configurée dans un FPGA (S120); générer, d'après le type de l'interruption, des données d'interruption PCIe, et déterminer, d'après le type de l'interruption, une interface d'émission correspondant aux données d'interruption PCIe au niveau d'une interface PCIe (S130); et émettre, au moyen de l'interface d'émission, les données d'interruption PCIe (S140). Le procédé étend la compatibilité d'un FPGA avec une interruption de processeur. De plus, des fonctions d'interruption respectives peuvent être développées et entretenues indépendamment, de telle façon que les fonctions d'interruption n'interférent pas entre elles et puissent être développées avec une difficulté moindre. En outre, la présente invention facilite la construction d'une plate-forme logique de FPGA et assure la construction d'une plate-forme pour une couche de pilotage à partir d'une couche inférieure.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201611227961.1 | 2016-12-27 | ||
| CN201611227961.1A CN106681816A (zh) | 2016-12-27 | 2016-12-27 | PCIe中断方法和系统 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2018120780A1 true WO2018120780A1 (fr) | 2018-07-05 |
Family
ID=58871911
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2017/093470 Ceased WO2018120780A1 (fr) | 2016-12-27 | 2017-07-19 | Procédé et système pour interruption pcie |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN106681816A (fr) |
| WO (1) | WO2018120780A1 (fr) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113472964A (zh) * | 2021-06-05 | 2021-10-01 | 山东英信计算机技术有限公司 | 一种图像处理装置和系统 |
| CN119583232A (zh) * | 2024-11-14 | 2025-03-07 | 中国人民解放军网络空间部队信息工程大学 | PCIe交换节点INT中断处理方法及系统 |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
| CN108628782B (zh) * | 2018-03-27 | 2024-03-15 | 天津麒麟信息技术有限公司 | 一种基于飞腾平台的中断转换机制的实现方法 |
| CN108763121B (zh) * | 2018-04-28 | 2021-07-27 | 西安电子科技大学 | TTE端系统适配卡PCIe控制器的中断操作方法 |
| CN109582232A (zh) * | 2018-11-21 | 2019-04-05 | 中国船舶重工集团公司第七0七研究所 | 一种基于FPGA的顺序读写多片Flash系统及方法 |
| CN110399324A (zh) * | 2019-06-28 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 中断转换器及中断转换方法 |
| CN110750472A (zh) * | 2019-09-10 | 2020-02-04 | 苏州浪潮智能科技有限公司 | 一种int中断转msi中断的转换方法、装置及存储介质 |
| CN111078597B (zh) * | 2019-12-04 | 2021-07-30 | 江苏芯盛智能科技有限公司 | 一种中断消息生成装置、方法以及端设备 |
| CN111427823B (zh) * | 2020-03-30 | 2023-05-02 | 天津光电通信技术有限公司 | 支持pc与fpga通过pcie通信的驱动设计方法 |
| CN113138949A (zh) * | 2021-04-29 | 2021-07-20 | 上海阵量智能科技有限公司 | 中断控制器、中断控制方法、芯片、计算机设备以及介质 |
| CN113282397B (zh) * | 2021-06-25 | 2022-08-30 | 厦门紫光展锐科技有限公司 | 外设的中断处理方法及设备 |
| CN114817965B (zh) * | 2022-05-25 | 2025-03-28 | 广州万协通信息技术有限公司 | 基于多算法ip核实现msi中断处理的高速加解密系统及方法 |
| CN115221083B (zh) * | 2022-09-05 | 2023-01-24 | 浪潮电子信息产业股份有限公司 | 一种PCIe中断处理方法、装置、设备及介质 |
| CN118132243B (zh) * | 2024-05-07 | 2024-07-19 | 浪潮电子信息产业股份有限公司 | 一种中断信号处理方法、装置、设备、介质、电路及系统 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101634974A (zh) * | 2009-08-26 | 2010-01-27 | 成都市华为赛门铁克科技有限公司 | 一种多中断类型的处理方法、装置和系统 |
| US20130198432A1 (en) * | 2011-11-30 | 2013-08-01 | Marvell World Trade Ltd. | Interrupt handling systems and methods for pcie bridges with multiple buses |
| CN103559156A (zh) * | 2013-11-11 | 2014-02-05 | 北京大学 | 一种fpga与计算机之间的通信系统 |
| CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7197588B2 (en) * | 2004-03-31 | 2007-03-27 | Intel Corporation | Interrupt scheme for an Input/Output device |
| US20050289271A1 (en) * | 2004-06-29 | 2005-12-29 | Martinez Alberto J | Circuitry to selectively produce MSI signals |
| US7702889B2 (en) * | 2005-10-18 | 2010-04-20 | Qualcomm Incorporated | Shared interrupt control method and system for a digital signal processor |
| JP5320140B2 (ja) * | 2009-04-14 | 2013-10-23 | 株式会社日立製作所 | 計算機システム、割込み中継回路及び割込み中継方法 |
| US8606975B2 (en) * | 2010-05-21 | 2013-12-10 | Oracle International Corporation | Managing interrupts in a virtualized input/output device supporting multiple hosts and functions |
-
2016
- 2016-12-27 CN CN201611227961.1A patent/CN106681816A/zh active Pending
-
2017
- 2017-07-19 WO PCT/CN2017/093470 patent/WO2018120780A1/fr not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101634974A (zh) * | 2009-08-26 | 2010-01-27 | 成都市华为赛门铁克科技有限公司 | 一种多中断类型的处理方法、装置和系统 |
| US20130198432A1 (en) * | 2011-11-30 | 2013-08-01 | Marvell World Trade Ltd. | Interrupt handling systems and methods for pcie bridges with multiple buses |
| CN103559156A (zh) * | 2013-11-11 | 2014-02-05 | 北京大学 | 一种fpga与计算机之间的通信系统 |
| CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
Non-Patent Citations (1)
| Title |
|---|
| SONG, ZHE: "Design of the PCIe Protocol Adaptation Layers Based on MicroBlaze", ELECTRONIC TECHNOLOGY & INFORMATION SCIENCE , CHINA MASTER'S THESES FULL-TEXT DATABASE, 15 August 2014 (2014-08-15), pages 14, ISSN: 1674-0246 * |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113472964A (zh) * | 2021-06-05 | 2021-10-01 | 山东英信计算机技术有限公司 | 一种图像处理装置和系统 |
| CN113472964B (zh) * | 2021-06-05 | 2024-04-16 | 山东英信计算机技术有限公司 | 一种图像处理装置和系统 |
| CN119583232A (zh) * | 2024-11-14 | 2025-03-07 | 中国人民解放军网络空间部队信息工程大学 | PCIe交换节点INT中断处理方法及系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN106681816A (zh) | 2017-05-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2018120780A1 (fr) | Procédé et système pour interruption pcie | |
| US5535341A (en) | Apparatus and method for determining the status of data buffers in a bridge between two buses during a flush operation | |
| JP4194274B2 (ja) | クアド・ポンプ・バス・アーキテクチャおよびプロトコル | |
| US5870567A (en) | Delayed transaction protocol for computer system bus | |
| US6094700A (en) | Serial bus system for sending multiple frames of unique data | |
| US7752374B2 (en) | Method and apparatus for host messaging unit for peripheral component interconnect busmaster devices | |
| US20160117277A1 (en) | Collaborative hardware interaction by multiple entities using a shared queue | |
| US7783817B2 (en) | Method and apparatus for conditional broadcast of barrier operations | |
| JPH077374B2 (ja) | インタフェース回路 | |
| WO1996000940A1 (fr) | Convertisseur de protocole d'interruptions pci en protocole d'interruptions isa et logique de selection | |
| US9009377B2 (en) | Edge-triggered interrupt conversion in a system employing level-sensitive interrupts | |
| JP2009043256A (ja) | 記憶装置のアクセス方法及び装置 | |
| EP0358715A1 (fr) | Noeud d'interruption destine a fournir des demandes d'interruption au bus de systeme. | |
| US6567881B1 (en) | Method and apparatus for bridging a digital signal processor to a PCI bus | |
| CN115934625B (zh) | 一种用于远程直接内存访问的敲门铃方法、设备及介质 | |
| KR102206313B1 (ko) | 시스템 인터커넥트 및 시스템 인터커넥트의 동작 방법 | |
| US7181559B2 (en) | Message based transport mechanism for level sensitive interrupts | |
| US6693914B1 (en) | Arbitration mechanism for packet transmission | |
| US6901475B2 (en) | Link bus for a hub based computer architecture | |
| TW200304071A (en) | USB host controller | |
| US7673091B2 (en) | Method to hide or reduce access latency of a slow peripheral in a pipelined direct memory access system | |
| EP3340011A1 (fr) | Dispositifs électroniques et leurs procédés de fabrication | |
| US9092581B2 (en) | Virtualized communication sockets for multi-flow access to message channel infrastructure within CPU | |
| CN115297169B (zh) | 数据处理方法、装置、电子设备及介质 | |
| JP2004334840A (ja) | システムバスの制御方法及び関連装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17885603 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 17.10.2019) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 17885603 Country of ref document: EP Kind code of ref document: A1 |