WO2015113211A1 - Reentrant resource scheduling method, device and system - Google Patents

Reentrant resource scheduling method, device and system Download PDF

Info

Publication number
WO2015113211A1
WO2015113211A1 PCT/CN2014/071681 CN2014071681W WO2015113211A1 WO 2015113211 A1 WO2015113211 A1 WO 2015113211A1 CN 2014071681 W CN2014071681 W CN 2014071681W WO 2015113211 A1 WO2015113211 A1 WO 2015113211A1
Authority
WO
WIPO (PCT)
Prior art keywords
scheduling
reentrant
resource
fpga
information
Prior art date
Application number
PCT/CN2014/071681
Other languages
French (fr)
Chinese (zh)
Inventor
祁凯
王伟
蔡毅
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201480000429.9A priority Critical patent/CN104956328B/en
Priority to PCT/CN2014/071681 priority patent/WO2015113211A1/en
Publication of WO2015113211A1 publication Critical patent/WO2015113211A1/en

Links

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt

Definitions

  • the present invention relates to the field of computer application technologies, and in particular, to a re-entry resource scheduling method, device, and system. Background technique
  • the FPGA embedded system consists of a microprocessor unit, an FPGA part, and an externally EEPROM (Electrically Erasable Programmable Read Only Memory) device.
  • the microprocessor unit is the main control part of the system and is mainly responsible for managing the FPGA. The system runs normally, the control command is issued, and the operation result of the receiving FPGA system is returned.
  • the peripheral devices in the FPGA are connected to the micro processing unit and the external input/output interface.
  • the static area in the FPGA is the firmware part of the FPGA and the related configuration part.
  • the reentrant area is the FPGA business program in the EEPROM after powering up the FPGA system, and the FPGA business program inside the FPGA can also be dispatched into the EEPROM;
  • the EEPROM is an executable code cache device running on the FPGA, mainly stored on the FPGA. Before the power is required, the FPGA service program inside the FPGA and the FPGA business program in the EEPROM are scheduled from the FPGA after the FPGA is powered on.
  • the FPGA service program in the EEPROM is dispatched to the FPGA.
  • the control command needs to be manually input to enable the micro processing unit to issue the data.
  • the control command is sent to the FPGA, and then the FPGA loads or unloads the corresponding program, wherein the loading or unloading program needs manual editing, the operation is cumbersome, and the work efficiency is low.
  • a first aspect of the present invention provides a reentrant resource scheduling method, the method being used in a reentrant resource scheduling system, where the reentrant resource scheduling system includes an operating system, a scheduling buffer, and an FPGA, where the operation
  • the system is used to perform the following steps:
  • the format of the reentrant resource stored in the scheduling buffer is a converted format that can be recognized by the FPGA ;
  • the reentrant resource includes a user program
  • Determining, according to the operating state information of the reentrant resource, that the reentrant resource meets a scheduling condition includes:
  • determining that the reentrant resource meets a scheduling condition includes: ;
  • the re-entrant resource includes a kernel driver
  • Determining, according to the operating state information of the reentrant resource, that the reentrant resource meets a scheduling condition includes:
  • the kernel driver When the kernel driver is in a used state, it is determined that the reentrant resource satisfies a scheduling condition.
  • monitoring the running state information of the FPGA service program In conjunction with the possible implementation of the first aspect, in a fourth possible implementation, monitoring the running state information of the FPGA service program;
  • the FPGA service program that determines the sleep state or the unused state is deleted.
  • the monitoring re-entrant resource running state Information includes;
  • the monitoring by using the operating status information of the FPGA service program, includes:
  • the operation status information including whether the FPGA service program is in a sleep state or an unused state.
  • the status request information includes the following information: the version identifier, the information type, the information length, the transmission identifier, and the target resource type;
  • the operating status information includes:
  • Version ID Version ID, information type, message length, transport ID, and target resource type.
  • the storing, by the storing, the re-entrant resource that meets the scheduling condition into the scheduling buffer includes: The statistical identifier is used to indicate that the user program in the operable state is occupied. Memory usage reaches a preset threshold;
  • the storing the re-entrant resource that meets the scheduling condition into the scheduling buffer includes: The memory usage occupied by the kernel driver reaches a preset threshold;
  • the acquiring the statistical identifier includes:
  • the statistical information includes a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a statistical identifier.
  • the deleting the FPGA service program that is determined to be in a sleep state or an unused state includes: when the FPGA service program Obtaining a statistical identifier when the user is in a sleep state or an unused state, where the statistical identifier is used to indicate that the FPGA service program is in a sleep state or an unused state; according to the statistical identifier, deleting the determination to be in a sleep state or not The state of the FPGA business process.
  • the obtaining the statistical identifier when the FPGA service program is in a sleep state or an unused state includes:
  • the statistical information is obtained according to the running state information of the FPGA service program, where the statistical information includes a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a statistical identifier.
  • the re-entry resource stored in the scheduling buffer is scheduled to be included in the FPGA
  • the scheduling identifier is used to indicate that the reentrant resource stored in the scheduling buffer has succeeded Dispatched into the FPGA.
  • the scheduling identifier includes:
  • the scheduling status information including version identification, information type, information length, transmission identification, target resource type, and scheduling logo.
  • a second aspect of the present invention provides a computer storage medium, wherein the computer storage medium stores a program, and the program includes all or part of the steps of the reentrant resource scheduling method provided by the first aspect of the embodiment of the present invention.
  • a third aspect of the present invention provides a reentrant resource scheduling device, including:
  • a status monitoring unit configured to monitor running status information of reentrant resources
  • condition determining unit configured to determine, according to the running status information of the reentrant resource monitored by the status monitoring unit, that the reentrant resource meets a scheduling condition
  • a resource storage unit configured to store, by the condition determining unit, a reentrant resource that meets a scheduling condition, into a scheduling buffer, where the format of the reentrant resource stored in the scheduling buffer is converted a format that can be recognized by the FPGA;
  • a resource scheduling unit configured to allocate the reentrant resource stored in the scheduling buffer to the FPGA, so that the reentrant resource becomes an FPGA service program.
  • the reentrant resource includes a user program
  • the condition determining unit includes:
  • a status determining module configured to determine, according to the running status information of the obtained user program by the status monitoring unit, that the user program is in an operable state
  • condition determining module configured to determine, when the state determining module determines that the user program is in an executable state, determine that the reentrant resource meets a scheduling condition.
  • condition determining module includes:
  • a memory determining submodule configured to: when the state determining module determines that the user program is in a runnable value; And a condition determining submodule, configured to determine, when the memory determining submodule determines that the memory usage occupied by the user program in the operable state reaches a preset threshold, determining that the reentrant resource meets the scheduling condition.
  • the re-entrant resource includes a kernel driver
  • the state determining module is further configured to determine, according to the running state information of the kernel driver that is obtained by the state monitoring unit, that the kernel driver is in a used state;
  • the condition determining module is further configured to: when the state determining module determines that the kernel driver is in a used state, determine that the reentrant resource satisfies a scheduling condition.
  • the state monitoring unit is further configured to monitor operation state information of the FPGA service program.
  • the condition determining unit is further configured to determine, according to the running state information of the FPGA service program that is monitored by the state monitoring unit, that the FPGA service program is in a sleep state or an unused state;
  • the reentrant resource scheduling device further includes a resource deletion unit, configured to delete the FPGA service program that the condition determining unit determines to be in a sleep state or an unused state.
  • the state monitoring unit includes:
  • the running status information includes whether the memory usage occupied by the user program in the operable state reaches a preset threshold, or whether the kernel driver is in the used state.
  • the status request sending module is further configured to send status request information to the FPGA service program; And for receiving the running status information returned by the FPGA service program according to the status request information sent by the status request sending module, where the running status information includes whether the FPGA service program is in a sleep state or an unused state.
  • the status request information includes an indication requesting the following information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type;
  • the operating status information includes:
  • Version ID Version ID, information type, message length, transport ID, and target resource type.
  • the resource storage unit includes:
  • a statistical identifier obtaining module configured to acquire a statistical identifier when the condition determining module determines that the memory usage of the user program in the operable state reaches a preset threshold, where the statistical identifier is used by the resource storage module,
  • the statistical identifier obtained by the statistic identifier obtaining module is stored in the scheduling buffer by the reentrant resource that satisfies the scheduling condition.
  • the statistic identifier is obtained, and when the condition determining module determines that the kernel driver is in the Obtaining a statistical identifier when the state is used, where the statistical identifier is used to indicate that the memory usage occupied by the kernel driver reaches a preset threshold;
  • the resource storage module is further configured to store, according to the statistical identifier obtained by the statistical identifier obtaining module, the reentrant resource that meets the scheduling condition into the scheduling buffer.
  • the statistics identifier obtaining module is further configured to obtain statistics according to the running state information of the reentrant resource
  • the information includes the version identifier, the information type, the information length, the transmission identifier, the target resource type, and the statistical identifier.
  • the resource deleting unit includes:
  • a statistical identifier obtaining module configured to acquire a statistical identifier when the condition determining unit determines that the FPGA service program is in a sleep state or an unused state, where the statistical identifier is used to indicate that the FPGA service program is in a sleep state or not status of use;
  • a resource deletion module configured to delete, according to the statistical identifier acquired by the statistical identifier obtaining module, the FPGA service program that is determined to be in a sleep state or not in use.
  • the statistical identifier obtaining module is further configured to obtain statistical information according to the running state information of the FPGA service program, where the statistical information includes a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a statistical identifier.
  • the resource scheduling unit is further configured to: when the resource storage unit is stored in the scheduling buffer, reentrant resource scheduling A scheduling identifier is obtained when the FPGA is in use, and the scheduling identifier is used to indicate that the reentrant resource stored in the scheduling buffer has been successfully scheduled into the FPGA.
  • the resource scheduling unit is further configured to: when the resource storage unit is to be stored in the scheduling buffer
  • the scheduling state information is obtained when the reentrant resource is scheduled into the FPGA, and the scheduling state information includes a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a scheduling identifier.
  • a fourth aspect of the present invention provides a re-entrant resource scheduling device, where the device includes an FPGA, a memory, and a processor, where the memory includes a scheduling buffer, the memory stores a set of program codes, and the processing It is used to call the program code stored in the memory to perform the following operations:
  • the format of the reentrant resource stored in the scheduling buffer is a converted format that can be recognized by the FPGA ;
  • the reentrant resources stored in the scheduling buffer are dispatched to the FPGA to cause the reentrant resources to become FPGA service programs.
  • the reentrant resource by monitoring the obtained running state information of the reentrant resource, determining that the reentrant resource meets the scheduling condition, and storing the reentrant resource that meets the scheduling condition into the scheduling buffer, where
  • the format of the reentrant resource stored in the scheduling buffer is a converted format recognizable by the FPGA, and further scheduling the reentrant resource stored in the scheduling buffer to
  • the reentrant resource is made into an FPGA service program, and the running state information of the reentrant resource obtained according to the monitoring is automatically implemented, and the re-entry resource satisfying the scheduling condition is used.
  • the source is dispatched to the FPGA to improve work efficiency.
  • FIG. 1 is a schematic flowchart of a re-entry resource scheduling method according to an embodiment of the present invention
  • FIG. 2 is a schematic flowchart of a reentrant resource scheduling method according to another embodiment of the present invention
  • FIG. 4 is a schematic flowchart of a re-entry resource scheduling method according to another embodiment of the present invention
  • FIG. 5 is a schematic diagram of a kernel driver according to an embodiment of the present invention
  • FIG. 6 is a schematic flowchart of a re-entry resource scheduling method according to another embodiment of the present invention
  • FIG. 1 is a schematic flowchart of a re-entry resource scheduling method according to an embodiment of the present invention
  • FIG. 2 is a schematic flowchart of a reentrant resource scheduling method according to another embodiment of the present invention
  • FIG. 4 is a schematic flowchart of a re-entry resource scheduling method according to another embodiment of the present invention
  • FIG. 5 is a schematic diagram of a kernel driver according to an
  • FIG. 7 is a schematic diagram of a scheduling state machine of an FPGA service program according to an embodiment of the present invention
  • 8 is a schematic structural diagram of a re-entrant resource scheduling device according to an embodiment of the present invention
  • FIG. 9 is a schematic structural diagram of a condition determining unit of FIG. 8 according to an embodiment of the present invention
  • FIG. 10 is a schematic diagram of FIG.
  • FIG. 11 is a schematic structural diagram of a state monitoring unit of FIG. 8 according to an embodiment of the present invention
  • FIG. 12 is a schematic diagram of the present invention
  • FIG. 13 is a schematic structural diagram of a resource deletion unit of FIG. 8 according to an embodiment of the present invention
  • FIG. 14 is a re-entrant resource scheduling system according to an embodiment of the present invention
  • Schematic diagram of the structure Schematic diagram of the structure. detailed description
  • FIG. 1 is a flowchart of a reentrant resource scheduling method according to an embodiment of the present invention. The method is used in a re-entrant resource scheduling system, where the re-entrant resource scheduling system includes an operating system, a scheduling buffer, and a field editable logic gate array FPGA, wherein the operating system is configured to perform the following steps:
  • the operating system can monitor operational status information for reentrant resources, which can include user programs and kernel drivers.
  • the operating system can also monitor the operational status information of the FPGA business program.
  • the monitoring module in the operating system may send status request information to the reentrant resource and the FPGA service program, so that the reentrant resource and the FPGA service program return the running status information according to the status request information, where the operation
  • the status information may include whether the memory usage occupied by the user program in a runnable state reaches a preset threshold, or whether the kernel driver is in a used state, or whether the FPGA service program is in a sleep state or an unused state, thereby monitoring
  • the module may receive the re-entrant resource or operational status information returned by the FPGA service program, where the status request information may be used to indicate the following information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type,
  • the operational status information may include a version identification, an information type, an information length, a transmission identification, and a target resource type.
  • the information format of the exemplary status request information is as shown above.
  • the version identifier in the status request information may be 0x00, the information type may be FPGA busy request information, the information length may be 24 bit bits, and the transmission identifier may be “0”.
  • the target resource type may be a user program, a kernel driver, or an FPGA service program, and the status request information may further include identification information of the target resource, where the target The identification information of the target resource may be a fill request of the target resource.
  • the operating system broadcasts status request information to the user program, the kernel driver, and the FPGA service program, and the user program, the kernel driver, and the FPGA service program return the running status information after receiving the status request information, and the running status information may be Includes version ID, information type, message length, transport ID, and target resource type.
  • the information format of the exemplary running state information is as shown above, the version identifier in the running state information may be 0x00, the information type may be FPGA busy response information, the information length may be 24 bits, and the transmission identifier may be “0”, the target
  • the resource type may be a user program, a kernel driver, or an FPGA business program. For example, when the memory usage occupied by the user program in a runnable state reaches a preset threshold, the running state of the user program may be high load; the kernel driver When in the used state, the running state of the kernel driver may be used; when the FPGA service program is in a sleep state or an unused state, the running state of the FPGA service program may be idle.
  • S102 Determine, according to the running status information of the reentrant resource, that the reentrant resource satisfies the scheduling condition.
  • the operating system may determine, according to the running status information of the reentrant resource, that the reentrant resource satisfies the scheduling condition.
  • the monitoring module in the operating system may determine, according to the received running state information of the user program, that the user program is in a runnable state. And when the user program is in an operational state, determining that the reentrant resource satisfies a scheduling condition.
  • the operating system may further determine that the memory usage occupied by the user program in the operable state reaches a preset threshold, when the user program is in a runnable state. When the occupied memory usage reaches a preset threshold, it is determined that the reentrant resource satisfies the scheduling condition.
  • the monitoring module in the operating system may determine, according to the received running state information of the kernel driver, that the kernel driver is in a used state, and then when the kernel driver When the program is in the used state, it is determined that the reentrant resource satisfies the scheduling condition.
  • the monitoring module in the operating system may further determine, according to the running status information of the received FPGA service program, that the FPGA service program is in a sleep state or an unused state.
  • the operating system may store the reentrant resource satisfying the scheduling condition into a scheduling buffer, wherein the format of the reentrant resource stored in the scheduling buffer is converted to be recognized by the FPGA format.
  • the operating system may further delete the FPGA service program that is determined to be in a sleep state or an unused state. Further, the operating system may further use the FPGA service program that is determined to be in a sleep state or an unused state. Dispatched into the dispatch buffer.
  • the management module in the operating system may generate statistical request information, and send the statistical request information to the monitoring module to enable the threshold, or when the kernel
  • the management module acquires the statistical identifier returned by the monitoring module, and the statistical identifier is used to indicate that the user program is in the operable state.
  • the memory usage reaches a preset threshold, or the kernel driver is in a used state, or the FPGA service program is in a sleep state or an unused state. Further, the management module may further acquire statistics returned by the monitoring module.
  • the further operating system may store the reentrant resource in the scheduling buffer or delete the FPGA service program according to the obtained re-entrant resource or statistical information of the FPGA service program.
  • the re-entrant resource may also be prioritized, wherein the statistical request information may be used to indicate the following letter Information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type, where the statistical information may include a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a statistical identifier, such as the reentrant resource.
  • the information format of the exemplary statistical request information and the statistical information is as shown in the above, and the statistical request information is used to indicate the version identifier, the information type, the information length, the transmission identifier, and the target resource type, and the statistical information received by the management module.
  • the version identifier can be 0x00
  • the information type can be FPGA busy statistics
  • the information length can be 32bit
  • the transmission identifier can be " ⁇ ”
  • the target resource type can be a user program, a kernel driver or an FPGA service program
  • the statistical identifier is used to indicate The amount of memory used by a user program in a runnable state reaches a preset threshold, or the kernel driver is in a used state, or the FPGA business program is in a sleep state or is not in use, such as when When the memory usage of the user program in the runnable state reaches the preset threshold, the obtained statistical identifier may be “ ⁇ ”, indicating that the user program is in a busy state.
  • the operating system can schedule the reentrant resources stored in the scheduling buffer into the FPGA, so that the reentrant resource becomes an FPGA service program, wherein the operating system can prioritize the scheduling buffer according to a preset priority.
  • the highest re-entrant resource is scheduled into the FPGA, making the reentrant resource an FPGA service program and running the reentrant resource in the FPGA.
  • the scheduling module in the operating system may generate scheduling request information, and send the scheduling request information to the management module, so that the management module returns a statistical identifier corresponding to the target resource type in the scheduling request information, and the scheduling module further The statistical identifier schedules the reentrant resource stored in the scheduling buffer into the scheduling buffer, or deletes the FPGA service program in the FPGA according to the statistical identifier, when the storage into the scheduling buffer is
  • the scheduling module may obtain a scheduling identifier, where the scheduling identifier is used to indicate that the reentrant resource stored in the scheduling buffer has been successfully scheduled into the FPGA, for example, When the reentrant resource stored in the scheduling buffer has been successfully scheduled into the FPGA, the scheduling identifier acquired by the operating system may be “ ⁇ ; when stored in the scheduling buffer When the reentrant resource is not successfully scheduled into the FPGA, the scheduling identifier obtained by the operating system may be "0".
  • the scheduling identifier obtained by the operating system may be “ ⁇ ; when the FPGA service program is not successfully deleted, the scheduling identifier acquired by the operating system may be "0". .
  • the operating system may also acquire scheduling state information, where the scheduling state information may include a version identifier, an information type, an information length, and a transmission identifier, when the reentrant resource stored in the scheduling buffer is scheduled into the FPGA. , target resource type, and schedule ID.
  • the operating system may determine, according to the scheduling identifier in the scheduling state information, whether the reentrant resource or the FPGA service program scheduling is successful, and if the scheduling identifier in the scheduling state information is “1”, the If the re-entrant resource scheduling is successful or the FPGA service program has been successfully deleted; if the scheduling identifier in the scheduling status information is "0", it indicates that the reentrant resource scheduling is unsuccessful or the FPGA service program is not successfully deleted, optionally, operation
  • the system may re-schedule the reentrant resource stored in the scheduling buffer to the FPGA when the preset time is reached, or delete the second time when the preset time is reached. FPGA business process.
  • the information format of the exemplary scheduling state information is as shown above.
  • the version identifier in the scheduling state information may be 0x00
  • the information type may be resource scheduling information
  • the information length may be 64 bits
  • the transmission identifier may be "2"
  • the target resource may be a user program, a kernel driver, or an FPGA business program
  • the scheduling identifier may be "0" or " ⁇ , where the scheduling identifier "0” is used to indicate that the reentrant resource scheduling fails or the FPGA service program is not successfully deleted.
  • the scheduling identifier "" is used to indicate that the reentrant resource scheduling is successful or the FPGA service program has been successfully deleted.
  • FIG. 2 is a flowchart of a reentrant resource scheduling method according to another embodiment of the present invention.
  • the re-entrant resource scheduling method is described by using a user program as an example.
  • the method is used in a re-entrant resource scheduling system, where the re-entrant resource scheduling system includes an operating system.
  • the operating system can monitor the running status information of the user program. Specifically, the monitoring module in the operating system can send status request information to the user program, so that the user program returns running status information according to the status request information, where the operating status is The information may include whether the memory usage occupied by the user program in the operable state reaches a preset threshold, and the monitoring module receives the running status information returned by the user program.
  • the status request information may be used to indicate the following information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type, where the operation status information may include a version identifier, an information type, an information length, a transmission identifier, and a target resource. Types of.
  • FIG. 3 is a schematic diagram of a scheduling state machine of a user program, and the operating system can monitor running state information of the user program, and the running state of the user program may include preparing a scheduling state, an operable state, a busy state, and an idle state.
  • S202 Determine, according to the running status information of the user program, that the user program is in an operable state.
  • the operating system may determine that the user program is in an executable state according to running state information of the user program, and the operable state may include a running state and a ready running state. After the operating system determines that the user program is in a runnable state, it may also determine that the memory usage of the user program reaches a preset threshold, for example, the CPU (Central Processing Unit) usage rate of the user program reaches a preset.
  • the management module in the operating system may generate statistical request information, and send the statistical request information to the monitoring module, so that the monitoring module determines that the operating module is operable.
  • the statistical identifier returned by the management module to obtain the monitoring module may be " ⁇ , statistical identifier" ⁇ used to indicate that the memory usage occupied by the user program in the operable state reaches the pre-pre-
  • the threshold value indicates that the user program is in a busy state
  • the management module may further obtain statistics information returned by the monitoring module, where the statistics information may include a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a statistical identifier.
  • S204 Store the user program that is determined to be in a runnable state and the system resource usage reaches a preset threshold into a scheduling buffer.
  • the statistical identifier of the user program is " ⁇ "
  • the management module in the operating system may store the user program into the scheduling buffer according to the statistical identifier.
  • the operating system may schedule the user program stored in the scheduling buffer to the FPGA according to the statistical identifier in the statistical information of the user program.
  • the scheduling module in the operating system may generate scheduling request information, where The scheduling request information is sent to the management module, so that the management module returns a statistical identifier corresponding to the target resource type in the scheduling request information, and the scheduling module then schedules the user program stored in the scheduling buffer to the scheduling buffer according to the statistical identifier.
  • the operating system may schedule the user program with the highest priority in the scheduling buffer to the FPGA according to a preset priority, so that the user program becomes an FPGA service program, and runs in the FPGA. The user program.
  • the operating system monitors that the user program is in a preparation scheduling state, and when the time slice allocated by the user program reaches a preset time, the user program is manipulated.
  • the system resource usage reaches a preset threshold, and the user program can be switched from a runnable state to a busy state, and the operating system can store the user program in a scheduling buffer, and the Dispatching the user program into the FPGA, making the user program an FPGA service program, and running the user program in the FPGA; if the operating system monitors that the system resource usage of the user program does not reach a preset threshold, Switching the user program from an operational state to an idle state, and if the operating system monitors that the system resource usage of the user program reaches a preset threshold, the user program may be switched from an idle state to a busy state, and then the operating system The user program can be stored in a dispatch buffer and will be in the dispatch buffer User scheduler to the FPGA, the F
  • step S207 is performed; if not, step S208 is performed.
  • the acquired scheduling identifier in the scheduling status information for the user program is T.
  • the scheduling identifier for the user program acquired by the operating system may be “ ⁇ , the scheduling identifier is used to indicate that the user program is successful.
  • the scheduling may be performed by the operating system, where the operating system may also obtain scheduling status information, where the scheduling status information may include a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a scheduling identifier.
  • the scheduling identifier obtained by the operating system is "0".
  • the operating system may determine, according to the scheduling identifier in the scheduling state information, whether the scheduling of the user program is successful, and if the scheduling identifier in the scheduling state information is “ ⁇ , indicating that the user program is successfully scheduled; If the scheduling identifier in the information is "0", it indicates that the user program scheduling is unsuccessful.
  • the operating system can re-store the user program into the scheduling buffer when the preset time is reached, and store it in the scheduling buffer. The user program in the buffer is dispatched to the FPGA.
  • FIG. 4 is a schematic flowchart of a method for re-entry resource scheduling according to another embodiment of the present invention.
  • the embodiment of the present invention uses a kernel driver as an example to describe the reentrant resource scheduling method.
  • the method is used in a reentrant resource scheduling system, where the reentrant resource scheduling system includes an operating system, a scheduling buffer, and a field editable logic gate array FPGA, wherein the operating system
  • the system is used to perform the following steps:
  • the operating system can monitor the running status information of the kernel driver. Specifically, the monitoring module in the operating system can send status request information to the kernel driver, so that the kernel driver returns the running status information according to the status request information.
  • the running status information may include whether the kernel driver program is in a used state, and the monitoring module receives the running status information returned by the kernel driver.
  • the status request information may indicate the following information by the user: a version identifier, an information type, an information length, a transmission identifier, and a target resource type, where the operation status information may include a version identifier, an information type, an information length, a transmission identifier, and a target resource type. .
  • FIG. 5 is a schematic diagram of a scheduling state machine of a kernel driver, and an operating system can monitor running state information of a kernel driver.
  • the running state of the kernel driver may include preparing a scheduling state, an executable state, a busy state, and an idle state. Status, etc.
  • the operating system can determine that the kernel driver is in use according to the running state information of the kernel driver.
  • the management module in the operating system may generate statistical request information, and send the statistical request information to the monitoring module, so that the monitoring module determines when the kernel driver is When the program is in the used state, the management module acquires a statistical identifier of the kernel driver returned by the monitoring module, where the statistical identifier is used to indicate that the kernel driver is in a used state, for example, the operating system determines that the kernel driver is in a state In the used state, the statistical identifier in the statistical information of the kernel driver can be set to " ⁇ , the statistical identifier "1" indicates that the kernel driver is in a busy state.
  • the operating system may store the kernel driver in the used state into the scheduling buffer according to the statistical identifier of the kernel driver.
  • the operating system can store the statistic identifier in the statistics of the kernel driver to Dispatching the kernel driver in the scheduling buffer to the FPGA.
  • the scheduling module in the operating system may generate scheduling request information, and send the scheduling request information to the management module, so that the management module returns the scheduling request.
  • the statistical identifier corresponding to the target resource type in the information, and the scheduling module then schedules the kernel driver stored in the scheduling buffer to the scheduling buffer according to the statistical identifier, wherein the operating system may schedule according to the preset priority.
  • the kernel driver with the highest priority in the buffer is dispatched into the FPGA, making the kernel driver an FPGA business program, and running the kernel driver in the FPGA.
  • the operating system monitors that the kernel driver is in a ready-to-schedule state, and when the kernel driver is loaded into the operating system, the kernel driver is monitored.
  • the program is currently being used to switch the kernel driver from a runnable state to a busy state, and the operating system can store the kernel driver in a dispatch buffer that will dispatch the kernel driver in the buffer.
  • the kernel driver Dispatching into the FPGA, making the kernel driver an FPGA business program, and running the kernel driver in the FPGA; if the operating system monitors that the kernel driver is not used, the kernel driver may be Switching from an operational state to an idle state, when the operating system monitors that the kernel driver is used, the kernel driver can be switched from an operational state to a busy state, and the operating system stores the kernel driver to In the dispatch buffer, the kernel drive in the dispatch buffer will be further The program is programmed into the FPGA to make the kernel driver an FPGA business program and to run the kernel driver in the FPGA.
  • step S406 executes the kernel driver stored in the scheduling buffer to the FPGA.
  • the obtained scheduling identifier in the scheduling status information for the kernel driver is T.
  • the scheduling identifier obtained by the operating system for the kernel driver may be " ⁇ , where the scheduling state information may include a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a scheduling identifier.
  • the scheduling identifier obtained by the operating system may be "0".
  • the operating system may determine, according to the scheduling identifier in the scheduling state information, whether the kernel driver scheduling is successful, and if the scheduling identifier in the scheduling state information is “ ⁇ , indicating that the kernel driver is successfully scheduled; The scheduling identifier in the scheduling status information is "0", indicating that the kernel driver scheduling is unsuccessful.
  • the operating system may re-store the kernel driver into the scheduling buffer when the preset time is reached, and The kernel driver stored in the dispatch buffer is dispatched into the FPGA.
  • FIG. 6 is a schematic flowchart of a method for re-entry resource scheduling according to another embodiment of the present invention.
  • the embodiment of the present invention uses an FPGA service program as an example to describe the reentrant resource scheduling method.
  • the method is used in a re-entrant resource scheduling system, where the re-entrant resource scheduling system includes an operating system, a scheduling buffer, and a field editable logic gate array FPGA, wherein the operating system is configured to perform the following steps:
  • the operating system can monitor the running status information of the FPGA service program. Specifically, the monitoring module in the operating system can send status request information to the FPGA service program, so that the FPGA service program returns the running status information according to the status request information.
  • the running status information may include whether the FPGA service program is in a sleep state or an unused state, and the monitoring module can receive the The running status information returned by the FPGA service program, where the status request information may be used to indicate the following information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type, where the running status information may include a version identifier and information.
  • Type length of information, transport ID, and target resource type.
  • FIG. 7 is a schematic diagram of a scheduling state machine of an FPGA service program.
  • the reentrant resource scheduling device can monitor operation state information of an FPGA service program, and the running state of the FPGA service program can include preparing a scheduling state, an operable state, Busy and idle status.
  • S602 Determine, according to the running status information of the FPGA service program, that the FPGA service program is in a sleep state or an unused state.
  • the operating system may determine that the FPGA service program is in a sleep state according to the running status information of the FPGA service program, wherein the sleep state is waiting for an event to occur or waiting to acquire system resources.
  • the reentrant resource scheduling device may further determine that the FPGA service program is in an unused state according to the running status information of the FPGA service program.
  • the management module in the operating system may generate statistical request information, and send the statistical request information to the monitoring module, so that the monitoring module determines that the FPGA service program is in sleep.
  • the management module obtains the statistical identifier returned by the monitoring module, and the statistical identifier is used to indicate that the FPGA service program is in a sleep state or an unused state. Further, the management module may obtain the monitoring module to return.
  • Statistics, statistics information can include version identifier, information type, information length, transmission identifier, target resource type, and statistical identifier.
  • the reentrant resource scheduling device determines that the FPGA service program is in a sleep state or an unused state, the statistical identifier of the FPGA service program acquired by the management module may be "0", and the statistical identifier "0" indicates the The FPGA business process is idle.
  • the operating system may determine that the FPGA service program is in an idle state according to the monitored operating state information of the FPGA service program, that is, the FPGA service program is in a sleep state. Or not in use.
  • the operating system may delete the FPGA service program according to the statistical identifier in the statistical information of the FPGA service program.
  • the operating system may also schedule the FPGA service program in the sleep state or the unused state to the scheduling buffer. In the district. Specifically, if the FPGA service program The statistical identifier is "0", that is, the FPGA service program is in an idle state, and also indicates that the FPGA service program is in a sleep state or an unused state, and the FPGA service that is determined to be in a sleep state or an unused state is deleted.
  • the program optionally, the operating system can schedule the FPGA business program into a scheduling buffer.
  • the reentrant resource in the scheduling buffer may be scheduled into the FPGA.
  • the reentrant resource becomes an FPGA service program, and the FPGA service program is run in the FPGA, and the FPGA service program is in a state of preparation for scheduling; and the operating system can prepare the FPGA service program from preparation for scheduling by powering on the FPGA.
  • the state is switched to the runnable state; if the operating system monitors that the FPGA service program load is low, the FPGA service program may be switched from the runnable state to the idle state, and the operating system may be based on the statistical identifier of the FPGA service program.
  • the operating system monitors that the FPGA service program load is high, the FPGA service program may be The operating state is switched to a busy state, and the operation is accelerated in the FPGA; if the operating system monitors the FPGA service Order low load, the FPGA program service can be switched from the busy state to the idle state, and thus the operating system may delete the service program FPGA, and the FPGA from the FPGA traffic scheduler in the scheduling buffer.
  • step S605 is performed; if the FPGA service program is not successfully deleted, the step is performed. S606.
  • the scheduling identifier for the FPGA service program obtained by the operating system may be “ ⁇ , where the scheduling status information obtained by the operating system may include a version identifier, an information type, an information length, Transport ID, target resource type, and schedule ID. S606. If no, the scheduling identifier in the acquired scheduling state information for the FPGA service program may be "0".
  • the scheduling identifier in the scheduling status information acquired by the operating system may be "0".
  • the operating system may determine, according to the scheduling identifier, whether the scheduling of the FPGA service program is successful. If the scheduling identifier in the scheduling status information is “ ⁇ , the FPGA service program has been successfully deleted; if the scheduling status information is If the scheduling identifier is "0", it indicates that the FPGA service program is not successfully deleted. Optionally, the operating system may delete the FPGA service program again when the preset time is reached, and schedule the FPGA service program to the scheduling buffer. In the district.
  • the operating system is obtained according to the monitoring.
  • the operating state information of the FPGA service program in the FPGA determines that the FPGA service program is in a sleep state or an unused state, and further deletes the FPGA service program that is determined to be in a sleep state or an unused state, thereby acquiring a scheduling identifier,
  • the scheduling identifier is used to indicate whether the FPGA service program is successfully deleted, and the operating state information of the FPGA service program obtained according to the monitoring is automatically implemented, and the FPGA service program that meets the scheduling condition is deleted from the FPGA to improve work efficiency.
  • the embodiment of the present invention further provides a computer storage medium, wherein the computer storage medium can store a program, and the program includes the reentrant resource scheduling described in the foregoing method embodiments shown in FIG. 1 to FIG.
  • FIG. 8 is a schematic structural diagram of a re-entrant resource scheduling device according to an embodiment of the present invention.
  • the re-entrant resource scheduling device may be used to implement the method embodiment shown in FIG. 1 to FIG.
  • the re-entrant resource scheduling device may include at least a status monitoring unit 801, a condition determining unit 802, a resource storage unit 803, and a resource scheduling unit 804, where:
  • the status monitoring unit 801 is configured to monitor running status information of the reentrant resource.
  • the condition determining unit 802 is configured to determine, according to the running state information of the reentrant resource monitored by the state monitoring unit 801, that the reentrant resource meets the scheduling condition.
  • the resource storage unit 803 is configured to store, by the condition determining unit 802, a reentrant resource that satisfies a scheduling condition, into a scheduling buffer, where the format of the reentrant resource stored in the scheduling buffer is The format of the conversion that can be recognized by the FPGA.
  • the resource scheduling unit 804 is configured to schedule the reentrant resource stored in the scheduling buffer by the resource storage unit 803 into the FPGA, so that the reentrant resource becomes an FPGA service program.
  • the re-entrant resource includes a user program
  • the condition determining unit 802 may be as shown in FIG.
  • the status determining module 901 is configured to determine, according to the running status information of the user program that is monitored by the status monitoring unit 801, that the user program is in an operable state.
  • the condition determining module 902 is configured to determine, when the state determining module 901 determines that the user program is in an executable state, determine that the reentrant resource satisfies a scheduling condition.
  • condition determining module 902 may further include: a memory determining submodule 1001, configured to: when the state determining module 901 determines that the user program reaches a preset threshold;
  • the condition determining sub-module 1002 is configured to determine, when the memory determining sub-module 1001 determines that the memory usage occupied by the user program in the operable state reaches a preset threshold, determining that the re-entrant resource meets the scheduling condition.
  • the re-entrant resource includes a kernel driver, where: the state determining module 901 is further configured to monitor, according to the state monitoring unit 801, the running state information of the obtained kernel driver, It is determined that the kernel driver is in a used state.
  • the condition determining module 902 is further configured to: when the state determining module 901 determines that the kernel driver is in a used state, determine that the reentrant resource satisfies a scheduling condition.
  • the status monitoring unit 801 is further configured to monitor running status information of the FPGA service program.
  • the condition determining unit 802 is further configured to determine, according to the running state information of the FPGA service program that is monitored by the state monitoring unit 801, that the FPGA service program is in a sleep state or an unused state.
  • the reentrant resource scheduling device may further include:
  • the resource deleting unit 805 is configured to delete the FPGA service program that the condition determining unit 802 determines to be in a sleep state or an unused state.
  • the status monitoring unit 801 may be as shown in FIG. 11, and further includes:
  • the status request sending module 1101 is configured to send status request information to the reentrant resource.
  • the operating state receiving module 1102 is configured to receive running state information returned by the re-entrant resource according to the state request information sent by the state request sending module 1101, where the running state information includes a memory occupied by a user program in a runnable state. Whether the usage reaches a preset threshold or whether the kernel driver is in use.
  • the status request sending module 1101 is further configured to send status request information to the FPGA service program.
  • the operating state receiving module 1102 is further configured to receive the running state information returned by the FPGA service program according to the state request information sent by the state request sending module 1101, where the running state information includes whether the FPGA service program is in sleep. Status or unused status.
  • the status request information includes an indication requesting the following information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type.
  • the running status information includes a version identifier, an information type, an information length, a transmission identifier, and a target resource type.
  • the resource storage unit 803 may be as shown in FIG. 12, and further includes:
  • the statistical identifier obtaining module 1201 is configured to obtain a statistical identifier when the condition determining module 902 determines that the memory usage occupied by the user program in the operable state reaches a preset threshold, where the threshold is obtained.
  • the resource storage module 1202 is configured to store, according to the statistical identifier acquired by the statistical identifier obtaining module 1201, the reentrant resource that meets the scheduling condition into the scheduling buffer.
  • the statistic identifier obtaining module 1201 is further configured to: when the condition determining module 902 determines that the kernel driver is in a used state, obtain a statistic identifier, where the statistic identifier is used to indicate the kernel driver. The occupied memory usage reaches the preset threshold.
  • the resource storage module 1202 is further configured to store, according to the statistical identifier acquired by the statistical identifier obtaining module 1201, the reentrant resource that meets the scheduling condition into the scheduling buffer.
  • the statistic identifier obtaining module 1201 is further configured to obtain the statistic information according to the running status information of the reentrant resource, where the statistic information includes a version identifier, an information type, an information length, a transmission identifier, and a target resource. Type and statistical ID.
  • the resource deleting unit 805 may be as shown in FIG. 13, and further includes:
  • the statistical identifier obtaining module 1301 is configured to: when the condition determining unit 802 determines that the FPGA service program is in a sleep state or an unused state, the statistical identifier is used to indicate that the FPGA service program is in a sleep state or Unused state.
  • the resource deletion module 1302 is configured to delete, according to the statistical identifier acquired by the statistical identifier obtaining module 1301, the FPGA service program that is determined to be in a sleep state or not in use.
  • the statistical identifier obtaining module 1301 is further configured to obtain statistical information according to the running state information of the FPGA service program, where the statistical information includes a version identifier, an information type, an information length, a transmission identifier, and a target resource type. And statistical identification.
  • the resource scheduling unit 804 is further configured to acquire a scheduling identifier when the re-entrant resource stored in the scheduling buffer is scheduled to be sent to the FPGA by using the resource storage unit.
  • the scheduling identifier is configured to indicate that the reentrant resource stored in the scheduling buffer has been successfully scheduled into the FPGA.
  • the resource scheduling unit 804 is further configured to: when the resource storage unit schedules the reentrant resource stored in the scheduling buffer to the FPGA, acquire scheduling state information, where the scheduling is performed.
  • Status information includes version identification, information type, information length, transmission identification, target resource type, and scheduling identification.
  • the condition determining unit 802 monitors the obtained operating state information of the reentrant resource through the state monitoring unit 801, and determines that the reentrant resource satisfies the scheduling condition, the resource.
  • the storage unit 803 stores the reentrant resource in a scheduling buffer, and the resource scheduling unit 804 schedules the reentrant resource stored in the scheduling buffer into the FPGA, so that the reentrant resource becomes
  • the FPGA service program can automatically implement the running state information of the reentrant resources obtained according to the monitoring, and schedule the reentrant resources satisfying the scheduling condition into the FPGA, and improve Work efficiency. Referring to FIG. 14, FIG.
  • the reentrant resource scheduling system includes: at least one processor 1401, such as a CPU, at least one FPGA 1405, a memory 1404, a scheduling buffer 1403, and at least one communication bus 1402. Communication bus 1402 is used to implement connection communication between these components.
  • the memory 1404 may include a high speed RAM memory, and may also include a non-volatile memory, such as at least one disk memory.
  • the memory 1404 can optionally include at least one storage device located remotely from the aforementioned processor 1401.
  • the scheduling buffer 1403 may be located in a hardware storage medium such as an EEPROM, or may be located in the memory 1404.
  • the memory 1404 stores a set of program codes, and the processor 1401 calls the program code stored in the memory 1404 to perform the following operations:
  • the format of the reentrant resource stored in the scheduling buffer is a converted format that can be recognized by the FPGA ;
  • the reentrant resources stored in the scheduling buffer 1403 are scheduled into the FPGA 1405 to make the reentrant resources an FPGA service program.
  • the reentrant resource includes a user program
  • the processor 1401 calls the program code stored in the memory 1404 to determine, according to the running status information of the reentrant resource, that the reentrant resource meets a scheduling condition. Specifically:
  • the processor 1401 calls the program code stored in the memory 1404.
  • determining that the reentrant resource meets the scheduling condition is specifically:
  • Determining the user program in a runnable state when the user program is in a runnable state The occupied memory usage reaches the preset threshold. Determining that the reentrant resource satisfies a scheduling condition.
  • the reentrant resource includes a kernel driver
  • the processor 1401 calls the program code stored in the memory 1404 to determine that the reentrant resource satisfies the schedule according to the running state information of the reentrant resource.
  • the conditions are as follows:
  • the kernel driver When the kernel driver is in a used state, it is determined that the reentrant resource satisfies a scheduling condition.
  • processor 1401 may also invoke the program code stored in the memory 1404 to perform the following steps:
  • the FPGA service program that determines the sleep state or the unused state is deleted.
  • the processor 1401 invokes the program code stored in the memory 1404 to monitor the running status information of the reentrant resource.
  • the processor 1401 invokes the program code stored in the memory 1404 to monitor the running status information of the reentrant resource.
  • the operation status information including whether the FPGA service program is in a sleep state or an unused state.
  • the status request information includes an indication requesting the following information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type;
  • the running status information includes a version identifier, an information type, an information length, a transmission identifier, and a target resource type.
  • the processor 1401 calls the program code stored in the memory 1404 to store the reentrant resource that meets the scheduling condition into the scheduling buffer 1403. Specifically, the statistical identifier is obtained, where the statistics are collected. The identifier is used to indicate that the memory usage occupied by the user program in the operable state reaches a preset threshold;
  • the reentrant resource that satisfies the scheduling condition is stored in the scheduling buffer 1403.
  • the processor 1401 calls the program code stored in the memory 1404 to store the reentrant resource that meets the scheduling condition into the scheduling buffer 1403.
  • the processor driver is configured to: The occupied memory usage reaches a preset threshold;
  • the reentrant resource that satisfies the scheduling condition is stored in the scheduling buffer 1403.
  • the processor 1401 may also acquire the program information stored in the memory 1404 to obtain statistical information according to the running status information of the reentrant resource, where the statistical information includes a version identifier, an information type, an information length, a transmission identifier, and a target resource type. And statistical identification.
  • the processor 1401 invokes the program code stored in the memory 1404 to delete the FPGA service program that is determined to be in a sleep state or not in use.
  • the processor 1401 may also call the program code stored in the memory 1404 according to the
  • the running status information of the FPGA service program acquires statistical information, where the statistical information includes a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a statistical identifier.
  • the processor 1401 calls the program code stored in the memory 1404 to schedule the reentrant resources stored in the scheduling buffer to the FPGA 1405, specifically: Obtaining a scheduling identifier when the reentrant resource stored in the scheduling buffer is scheduled into the FPGA 1405, the scheduling identifier is used to indicate that the reentrant resource stored in the scheduling buffer has succeeded Dispatched into the FPGA 1405.
  • the processor 1401 may also call the program code stored in the memory 1404 to acquire scheduling state information when the reentrant resource stored in the scheduling buffer 1403 is scheduled into the FPGA 1405, where the scheduling state information includes a version. ID, information type, message length, transport ID, target resource type, and schedule ID.
  • the storage medium may be a magnetic disk, an optical disk, a read-only memory (ROM), or a random access memory (RAM).

Abstract

Disclosed in an embodiment of the present application is a reentrant resource scheduling method, device and system. The method is applied to a reentrant resource scheduling system; the reentrant resource scheduling system comprises an operating system, a scheduling buffer and a field programmable gate array (FPGA), and the operating system is used for performing the following steps: monitoring the operating condition information of a reentrant resource; determining that the reentrant resource satisfies a scheduling condition according to the operating condition information of the reentrant resource; storing the reentrant resource satisfying the scheduling condition into the scheduling buffer, the format of the reentrant resource being a format having been converted and being identifiable by the FPGA; scheduling the reentrant resource stored in the scheduling buffer into the FPGA, such that the reentrant resource becomes an FPGA service program. The present application can automatically achieve scheduling into the FPGA of the reentrant resource satisfying the scheduling condition according to the operating condition information of the reentrant resource obtained through monitoring, thus improving working efficiency.

Description

一种可重入资源调度方法、 设备及系统 技术领域  Reentrant resource scheduling method, device and system
本发明涉及计算机应用技术领域, 尤其涉及一种可重入资源调度方法、设 备及系统。 背景技术  The present invention relates to the field of computer application technologies, and in particular, to a re-entry resource scheduling method, device, and system. Background technique
FPGA ( Field Programmable Gate Array, 现场可编程逻辑门阵列), 作为专 用集成电路领域中的一种半定制电路,用户可以通过可编辑的连接把 FPGA内 部的逻辑块连接起来, 就好像一个电路试验板被放在了一个芯片里。 FPGA嵌 入式系统由微处理单元、 FPGA部分以及外设 EEPROM ( Electrically Erasable Programmable Read Only Memory,电可擦可编程只读存储器)等设备组成, 其 中微处理单元是系统主控部分,主要负责管理 FPGA系统正常运行、下发控制 命令以及接收 FPGA系统的运行结果返回; FPGA中的外围设备连接微处理单 元以及外部输入 /输出接口等设备, FPGA中的静态区域是 FPGA固件部分和 相关配置部分, FPGA中的可重入区域是 FPGA系统上电后, 调度 EEPROM 中的 FPGA业务程序,也可以将 FPGA内部的 FPGA业务程序调度到 EEPROM 中; EEPROM是 FPGA运行的可执行代码緩存设备, 主要存放 FPGA上电前 需要调度到 FPGA内部的 FPGA业务程序和 FPGA上电后从 FPGA中调度到 EEPROM中的 FPGA业务程序。  FPGA (Field Programmable Gate Array), as a semi-custom circuit in the field of ASICs, users can connect the logic blocks inside the FPGA through an editable connection, just like a circuit test board. Was placed in a chip. The FPGA embedded system consists of a microprocessor unit, an FPGA part, and an externally EEPROM (Electrically Erasable Programmable Read Only Memory) device. The microprocessor unit is the main control part of the system and is mainly responsible for managing the FPGA. The system runs normally, the control command is issued, and the operation result of the receiving FPGA system is returned. The peripheral devices in the FPGA are connected to the micro processing unit and the external input/output interface. The static area in the FPGA is the firmware part of the FPGA and the related configuration part. The reentrant area is the FPGA business program in the EEPROM after powering up the FPGA system, and the FPGA business program inside the FPGA can also be dispatched into the EEPROM; the EEPROM is an executable code cache device running on the FPGA, mainly stored on the FPGA. Before the power is required, the FPGA service program inside the FPGA and the FPGA business program in the EEPROM are scheduled from the FPGA after the FPGA is powered on.
现有技术中, FPGA系统上电后将 EEPROM中的 FPGA业务程序调度到 FPGA中, 此时若加载程序到 FPGA中或从 FPGA中卸载程序, 需要手动输入 控制命令, 以使微处理单元下发控制命令给 FPGA, 进而 FPGA加载或卸载相 应程序, 其中加载或卸载程序需要手动编辑, 操作繁瑣, 工作效率较低。 发明内容  In the prior art, after the FPGA system is powered on, the FPGA service program in the EEPROM is dispatched to the FPGA. In this case, if the program is loaded into the FPGA or the program is uninstalled from the FPGA, the control command needs to be manually input to enable the micro processing unit to issue the data. The control command is sent to the FPGA, and then the FPGA loads or unloads the corresponding program, wherein the loading or unloading program needs manual editing, the operation is cumbersome, and the work efficiency is low. Summary of the invention
本发明实施例所要解决的技术问题在于, 提供一种可重入资源调度方法、 设备及系统, 可自动将可重入资源调度到 FPGA中, 提升工作效率。 本发明第一方面提供了一种可重入资源调度方法,所述方法用于可重入资 源调度系统,所述可重入资源调度系统包括操作系统、调度緩沖区以及 FPGA, 其中所述操作系统用于执行以下步骤: The technical problem to be solved by the embodiments of the present invention is to provide a re-entry resource scheduling method, device and system, which can automatically schedule reentrant resources into an FPGA to improve work efficiency. A first aspect of the present invention provides a reentrant resource scheduling method, the method being used in a reentrant resource scheduling system, where the reentrant resource scheduling system includes an operating system, a scheduling buffer, and an FPGA, where the operation The system is used to perform the following steps:
监控可重入资源的运行状态信息;  Monitor operational status information of reentrant resources;
根据所述可重入资源的运行状态信息, 确定所述可重入资源满足调度条 件;  Determining, according to the running status information of the reentrant resource, that the reentrant resource meets a scheduling condition;
将所述满足调度条件的可重入资源存储到所述调度緩沖区中,其中所述存 储到所述调度緩沖区中的可重入资源的格式为经过转换的能被所述 FPGA识 别的格式;  Storing the reentrant resource satisfying the scheduling condition into the scheduling buffer, wherein the format of the reentrant resource stored in the scheduling buffer is a converted format that can be recognized by the FPGA ;
将所述存储到所述调度緩沖区中的所述可重入资源调度到所述 FPGA中, 使所述可重入资源成为 FPGA业务程序。  Dislocating the reentrant resource stored in the scheduling buffer to the FPGA to make the reentrant resource an FPGA service program.
在第一种可能的实施方式中, 所述可重入资源包括用户程序;  In a first possible implementation manner, the reentrant resource includes a user program;
所述根据所述可重入资源的运行状态信息,确定所述可重入资源满足调度 条件包括;  Determining, according to the operating state information of the reentrant resource, that the reentrant resource meets a scheduling condition includes:
根据所述用户程序的运行状态信息, 确定所述用户程序处于可运行状态; 当所述用户程序处于可运行状态时, 则确定所述可重入资源满足调度条 件。  Determining that the user program is in an executable state according to the running status information of the user program; and determining that the reentrant resource satisfies a scheduling condition when the user program is in an operational state.
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中, 所 述所述当所述用户程序处于可运行状态时,则确定所述可重入资源满足调度条 件包括;  With reference to the first possible implementation manner of the first aspect, in a second possible implementation manner, when the user program is in an executable state, determining that the reentrant resource meets a scheduling condition includes: ;
当所述用户程序处于可运行状态时,确定所述处于可运行状态的用户程序 占用的内存使用量到达预设阈值; 确定所述可重入资源满足调度条件。  When the user program is in an executable state, determining that the memory usage occupied by the user program in the operable state reaches a preset threshold; determining that the reentrant resource meets the scheduling condition.
结合第一方面可能的实现方式,在第三种可能的实现方式中, 所述可重入 资源包括内核驱动程序;  In conjunction with the possible implementation of the first aspect, in a third possible implementation, the re-entrant resource includes a kernel driver;
所述根据所述可重入资源的运行状态信息,确定所述可重入资源满足调度 条件包括;  Determining, according to the operating state information of the reentrant resource, that the reentrant resource meets a scheduling condition includes:
根据所述内核驱动程序的运行状态信息,确定所述内核驱动程序处于被使 用状态; Determining that the kernel driver is being enabled according to the running state information of the kernel driver State of use
当所述内核驱动程序处于被使用状态时,则确定所述可重入资源满足调度 条件。  When the kernel driver is in a used state, it is determined that the reentrant resource satisfies a scheduling condition.
结合第一方面可能的实现方式, 在第四种可能的实现方式中, 监控所述 FPGA业务程序的运行状态信息;  In conjunction with the possible implementation of the first aspect, in a fourth possible implementation, monitoring the running state information of the FPGA service program;
根据所述 FPGA业务程序的运行状态信息,确定所述 FPGA业务程序处于 睡眠状态或未被使用状态;  Determining, according to the running state information of the FPGA service program, that the FPGA service program is in a sleep state or an unused state;
删除所述确定处于睡眠状态或未被使用状态的 FPGA业务程序。  The FPGA service program that determines the sleep state or the unused state is deleted.
结合第一方面或第一方面的第一种至第一方面的第四种中的任一种可能 的实现方式,在第五种可能的实现方式中, 所述监控可重入资源的运行状态信 息包括;  With reference to the first aspect, or any one of the first aspect of the first aspect to the fourth aspect of the first aspect, in a fifth possible implementation manner, the monitoring re-entrant resource running state Information includes;
向所述可重入资源发送状态请求信息;  Sending status request information to the reentrant resource;
接收所述可重入资源根据所述状态请求信息返回的运行状态信息,所述运 阈值, 或者包括内核驱动程序是否处于被使用状态。  Receiving, by the status information, the operational status information returned by the reentrant resource according to the status request information, the threshold value, or whether the kernel driver is in a used state.
结合第一方面的第四种可能的实现方式,在第六种可能的实现方式中, 所 述监控所述 FPGA业务程序的运行状态信息包括;  With reference to the fourth possible implementation of the first aspect, in a sixth possible implementation, the monitoring, by using the operating status information of the FPGA service program, includes:
向所述 FPGA业务程序发送状态请求信息;  Sending status request information to the FPGA service program;
接收所述 FPGA业务程序根据所述状态请求信息返回的运行状态信息,所 述运行状态信息包括所述 FPGA业务程序是否处于睡眠状态或未被使用状态。  Receiving operation state information returned by the FPGA service program according to the status request information, the operation status information including whether the FPGA service program is in a sleep state or an unused state.
结合第一方面的第五种可能的实现方式,在第七种可能的实现方式中, 所 述状态请求信息包括指示请求以下信息: 版本标识、 信息类型、 信息长度、 传 输标识以及目标资源类型;  With reference to the fifth possible implementation manner of the first aspect, in a seventh possible implementation manner, the status request information includes the following information: the version identifier, the information type, the information length, the transmission identifier, and the target resource type;
所述运行状态信息包括;  The operating status information includes:
版本标识、 信息类型、 信息长度、 传输标识以及目标资源类型。  Version ID, information type, message length, transport ID, and target resource type.
结合第一方面的第二种可能的实现方式,在第八种可能的实现方式中, 所 述将所述满足调度条件的可重入资源存储到所述调度緩沖区中包括; 取统计标识,其中所述统计标识用于指示所述处于可运行状态的用户程序占用 的内存使用量到达预设阈值; With reference to the second possible implementation manner of the first aspect, in an eighth possible implementation, the storing, by the storing, the re-entrant resource that meets the scheduling condition into the scheduling buffer includes: The statistical identifier is used to indicate that the user program in the operable state is occupied. Memory usage reaches a preset threshold;
根据所述统计标识,将所述满足调度条件的可重入资源存储到所述调度緩 沖区中。  And storing, according to the statistical identifier, the reentrant resource that satisfies the scheduling condition into the scheduling buffer.
结合第一方面的第三种可能的实现方式,在第九种可能的实现方式中, 所 述将所述满足调度条件的可重入资源存储到所述调度緩沖区中包括; 用于指示所述内核驱动程序占用的内存使用量到达预设阈值;  In conjunction with the third possible implementation of the first aspect, in a ninth possible implementation, the storing the re-entrant resource that meets the scheduling condition into the scheduling buffer includes: The memory usage occupied by the kernel driver reaches a preset threshold;
根据所述统计标识,将所述满足调度条件的可重入资源存储到所述调度緩 沖区中。  And storing, according to the statistical identifier, the reentrant resource that satisfies the scheduling condition into the scheduling buffer.
结合第一方面的第八种或第九种可能的实现方式,在第十种可能的实现方 式中, 所述获取统计标识包括;  With reference to the eighth or the ninth possible implementation manner of the first aspect, in the tenth possible implementation manner, the acquiring the statistical identifier includes:
根据所述可重入资源的运行状态信息获取统计信息,所述统计信息包括版 本标识、 信息类型、 信息长度、 传输标识、 目标资源类型以及统计标识。  Obtaining statistical information according to the running status information of the reentrant resource, where the statistical information includes a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a statistical identifier.
结合第一方面的第四种可能的实现方式, 在第十一种可能的实现方式中, 所述删除所述确定处于睡眠状态或未被使用状态的 FPGA业务程序包括; 当所述 FPGA业务程序处于睡眠状态或未被使用状态时获取统计标识,所 述统计标识用于指示所述 FPGA业务程序处于睡眠状态或未被使用状态; 根据所述统计标识, 删除所述确定处于睡眠状态或未被使用状态的 FPGA 业务程序。  With reference to the fourth possible implementation of the first aspect, in an eleventh possible implementation, the deleting the FPGA service program that is determined to be in a sleep state or an unused state includes: when the FPGA service program Obtaining a statistical identifier when the user is in a sleep state or an unused state, where the statistical identifier is used to indicate that the FPGA service program is in a sleep state or an unused state; according to the statistical identifier, deleting the determination to be in a sleep state or not The state of the FPGA business process.
结合第一方面的第十一种可能的实现方式, 在第十二种可能的实现方式 中,所述当所述 FPGA业务程序处于睡眠状态或未被使用状态时获取统计标识 包括:  With reference to the eleventh possible implementation manner of the foregoing aspect, in a twelfth possible implementation, the obtaining the statistical identifier when the FPGA service program is in a sleep state or an unused state includes:
根据所述 FPGA业务程序的运行状态信息获取统计信息,所述统计信息包 括版本标识、 信息类型、 信息长度、 传输标识、 目标资源类型以及统计标识。  The statistical information is obtained according to the running state information of the FPGA service program, where the statistical information includes a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a statistical identifier.
结合第一方面可能的实现方式,在第十三种可能的实现方式中, 所述将所 述存储到所述调度緩沖区中的可重入资源调度到所述 FPGA中包括;  In conjunction with the possible implementation of the first aspect, in a thirteenth possible implementation, the re-entry resource stored in the scheduling buffer is scheduled to be included in the FPGA;
当将存储到所述调度緩沖区中的可重入资源调度到所述 FPGA 中时获取 调度标识,所述调度标识用于指示所述存储到所述调度緩沖区中的可重入资源 已成功调度到所述 FPGA中。 结合第一方面的第十三种可能的实现方式, 在第十四种可能的实现方式 中,所述当将存储到所述调度緩沖区中的可重入资源调度到所述 FPGA中时获 取调度标识包括; Obtaining a scheduling identifier when the reentrant resource stored in the scheduling buffer is scheduled into the FPGA, the scheduling identifier is used to indicate that the reentrant resource stored in the scheduling buffer has succeeded Dispatched into the FPGA. With reference to the thirteenth possible implementation manner of the first aspect, in a fourteenth possible implementation manner, when the reentrant resource stored in the scheduling buffer is scheduled to be sent to the FPGA, The scheduling identifier includes:
当将存储到所述调度緩沖区中的可重入资源调度到所述 FPGA 中时获取 调度状态信息, 所述调度状态信息包括版本标识、 信息类型、 信息长度、 传输 标识、 目标资源类型以及调度标识。  Obtaining scheduling status information when scheduling re-entrant resources stored in the scheduling buffer into the FPGA, the scheduling status information including version identification, information type, information length, transmission identification, target resource type, and scheduling Logo.
本发明第二方面提供一种计算机存储介质,所述计算机存储介质存储有程 序,所述程序执行时包括本发明实施例第一方面提供的可重入资源调度方法中 全部或部分的步骤。  A second aspect of the present invention provides a computer storage medium, wherein the computer storage medium stores a program, and the program includes all or part of the steps of the reentrant resource scheduling method provided by the first aspect of the embodiment of the present invention.
本发明第三方面提供一种可重入资源调度设备, 包括:  A third aspect of the present invention provides a reentrant resource scheduling device, including:
状态监控单元, 用于监控可重入资源的运行状态信息;  a status monitoring unit, configured to monitor running status information of reentrant resources;
条件确定单元,用于根据所述状态监控单元监控得到的可重入资源的运行 状态信息, 确定所述可重入资源满足调度条件;  a condition determining unit, configured to determine, according to the running status information of the reentrant resource monitored by the status monitoring unit, that the reentrant resource meets a scheduling condition;
资源存储单元,用于将所述条件确定单元确定满足调度条件的可重入资源 存储到调度緩沖区中,其中所述存储到所述调度緩沖区中的可重入资源的格式 为经过转换的能被 FPGA识别的格式;  a resource storage unit, configured to store, by the condition determining unit, a reentrant resource that meets a scheduling condition, into a scheduling buffer, where the format of the reentrant resource stored in the scheduling buffer is converted a format that can be recognized by the FPGA;
资源调度单元,用于将所述资源存储单元存储到所述调度緩沖区中的所述 可重入资源调度到所述 FPGA中, 使所述可重入资源成为 FPGA业务程序。  And a resource scheduling unit, configured to allocate the reentrant resource stored in the scheduling buffer to the FPGA, so that the reentrant resource becomes an FPGA service program.
在第一种可能的实现方式中, 所述可重入资源包括用户程序;  In a first possible implementation manner, the reentrant resource includes a user program;
所述条件确定单元包括;  The condition determining unit includes:
状态确定模块,用于根据所述状态监控单元监控得到的用户程序的运行状 态信息, 确定所述用户程序处于可运行状态;  a status determining module, configured to determine, according to the running status information of the obtained user program by the status monitoring unit, that the user program is in an operable state;
条件确定模块,用于当所述状态确定模块确定所述用户程序处于可运行状 态时, 则确定所述可重入资源满足调度条件。  And a condition determining module, configured to determine, when the state determining module determines that the user program is in an executable state, determine that the reentrant resource meets a scheduling condition.
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中, 所 述条件确定模块包括;  In conjunction with the first possible implementation of the third aspect, in a second possible implementation, the condition determining module includes:
内存确定子模块,用于当所述状态确定模块确定所述用户程序处于可运行 值; 条件确定子模块,用于当所述内存确定子模块确定所述处于可运行状态的 用户程序占用的内存使用量到达预设阈值时,则确定所述可重入资源满足调度 条件。 a memory determining submodule, configured to: when the state determining module determines that the user program is in a runnable value; And a condition determining submodule, configured to determine, when the memory determining submodule determines that the memory usage occupied by the user program in the operable state reaches a preset threshold, determining that the reentrant resource meets the scheduling condition.
结合第三方面可能的实现方式,在第三种可能的实现方式中, 所述可重入 资源包括内核驱动程序;  In conjunction with the possible implementation of the third aspect, in a third possible implementation, the re-entrant resource includes a kernel driver;
所述状态确定模块,还用于根据所述状态监控单元监控得到的内核驱动程 序的运行状态信息, 确定所述内核驱动程序处于被使用状态;  The state determining module is further configured to determine, according to the running state information of the kernel driver that is obtained by the state monitoring unit, that the kernel driver is in a used state;
所述条件确定模块,还用于当所述状态确定模块确定所述内核驱动程序处 于被使用状态时, 则确定所述可重入资源满足调度条件。  The condition determining module is further configured to: when the state determining module determines that the kernel driver is in a used state, determine that the reentrant resource satisfies a scheduling condition.
结合第三方面可能的实现方式,在第四种可能的实现方式中, 所述状态监 控单元, 还用于监控所述 FPGA业务程序的运行状态信息;  In conjunction with the possible implementation of the third aspect, in a fourth possible implementation, the state monitoring unit is further configured to monitor operation state information of the FPGA service program.
所述条件确定单元,还用于根据所述状态监控单元监控得到的所述 FPGA 业务程序的运行状态信息,确定所述 FPGA业务程序处于睡眠状态或未被使用 状态;  The condition determining unit is further configured to determine, according to the running state information of the FPGA service program that is monitored by the state monitoring unit, that the FPGA service program is in a sleep state or an unused state;
所述可重入资源调度设备还包括资源删除单元,用于删除所述条件确定单 元确定处于睡眠状态或未被使用状态的 FPGA业务程序。  The reentrant resource scheduling device further includes a resource deletion unit, configured to delete the FPGA service program that the condition determining unit determines to be in a sleep state or an unused state.
结合第三方面或第三方面的第一种至第三方面的第四种中的任一种可能 的实现方式, 在第五种可能的实现方式中, 所述状态监控单元包括;  With reference to the third aspect, or any one of the first to third aspects of the third aspect, in a fifth possible implementation, the state monitoring unit includes:
状态请求发送模块, 用于向所述可重入资源发送状态请求信息; 运行状态接收模块,用于接收所述可重入资源根据所述状态请求发送模块 发送的状态请求信息返回的运行状态信息,所述运行状态信息包括处于可运行 状态的用户程序占用的内存使用量是否到达预设阈值,或者包括内核驱动程序 是否处于被使用状态。  a status request sending module, configured to send status request information to the reentrant resource, and an operation status receiving module, configured to receive operation status information returned by the re-entrant resource according to the status request information sent by the status request sending module The running status information includes whether the memory usage occupied by the user program in the operable state reaches a preset threshold, or whether the kernel driver is in the used state.
结合第三方面的第四种可能的实现方式,在第六种可能的实现方式中, 所 述状态请求发送模块, 还用于向所述 FPGA业务程序发送状态请求信息; 所述运行状态接收模块,还用于接收所述 FPGA业务程序根据所述状态请 求发送模块发送的状态请求信息返回的运行状态信息,所述运行状态信息包括 所述 FPGA业务程序是否处于睡眠状态或未被使用状态。  With the fourth possible implementation of the third aspect, in a sixth possible implementation, the status request sending module is further configured to send status request information to the FPGA service program; And for receiving the running status information returned by the FPGA service program according to the status request information sent by the status request sending module, where the running status information includes whether the FPGA service program is in a sleep state or an unused state.
结合第三方面的第五种可能的实现方式,在第七种可能的实现方式中, 所 述状态请求信息包括指示请求以下信息: 版本标识、 信息类型、 信息长度、 传 输标识以及目标资源类型; In combination with the fifth possible implementation of the third aspect, in a seventh possible implementation, The status request information includes an indication requesting the following information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type;
所述运行状态信息包括;  The operating status information includes:
版本标识、 信息类型、 信息长度、 传输标识以及目标资源类型。  Version ID, information type, message length, transport ID, and target resource type.
结合第三方面的第二种可能的实现方式,在第八种可能的实现方式中, 所 述资源存储单元包括;  With reference to the second possible implementation of the third aspect, in an eighth possible implementation, the resource storage unit includes:
统计标识获取模块,用于当所述条件确定模块确定处于可运行状态的用户 程序占用的内存使用量到达预设阈值时获取统计标识,其中所述统计标识用于 资源存储模块, 用于根据所述统计标识获取模块获取到的统计标识,将所 述满足调度条件的可重入资源存储到所述调度緩沖区中。  a statistical identifier obtaining module, configured to acquire a statistical identifier when the condition determining module determines that the memory usage of the user program in the operable state reaches a preset threshold, where the statistical identifier is used by the resource storage module, The statistical identifier obtained by the statistic identifier obtaining module is stored in the scheduling buffer by the reentrant resource that satisfies the scheduling condition.
结合第三方面的第三种可能的实现方式,在第九种可能的实现方式中, 所 述统计标识获耳 ^莫块,还用于当所述条件确定模块确定所述内核驱动程序处于 被使用状态时获取统计标识,其中所述统计标识用于指示所述内核驱动程序占 用的内存使用量到达预设阈值;  With reference to the third possible implementation manner of the third aspect, in a ninth possible implementation manner, the statistic identifier is obtained, and when the condition determining module determines that the kernel driver is in the Obtaining a statistical identifier when the state is used, where the statistical identifier is used to indicate that the memory usage occupied by the kernel driver reaches a preset threshold;
所述资源存储模块, 还用于根据所述统计标识获取模块获取到的统计标 识, 将所述满足调度条件的可重入资源存储到所述调度緩沖区中。  The resource storage module is further configured to store, according to the statistical identifier obtained by the statistical identifier obtaining module, the reentrant resource that meets the scheduling condition into the scheduling buffer.
结合第三方面的第八种或第九种可能的实现方式,在第十种可能的实现方 式中, 所述统计标识获取模块,还用于根据所述可重入资源的运行状态信息获 取统计信息, 所述统计信息包括版本标识、 信息类型、 信息长度、 传输标识、 目标资源类型以及统计标识。  With reference to the eighth or the ninth possible implementation manner of the third aspect, in the tenth possible implementation manner, the statistics identifier obtaining module is further configured to obtain statistics according to the running state information of the reentrant resource The information includes the version identifier, the information type, the information length, the transmission identifier, the target resource type, and the statistical identifier.
结合第三方面的第四种可能的实现方式, 在第十一种可能的实现方式中, 所述资源删除单元包括;  With the fourth possible implementation of the third aspect, in an eleventh possible implementation manner, the resource deleting unit includes:
统计标识获取模块,用于当所述条件确定单元确定所述 FPGA业务程序处 于睡眠状态或未被使用状态时获取统计标识, 所述统计标识用于指示所述 FPGA业务程序处于睡眠状态或未被使用状态;  And a statistical identifier obtaining module, configured to acquire a statistical identifier when the condition determining unit determines that the FPGA service program is in a sleep state or an unused state, where the statistical identifier is used to indicate that the FPGA service program is in a sleep state or not status of use;
资源删除模块, 用于根据所述统计标识获取模块获取到的统计标识,删除 所述确定处于睡眠状态或未被使用状态的 FPGA业务程序。  And a resource deletion module, configured to delete, according to the statistical identifier acquired by the statistical identifier obtaining module, the FPGA service program that is determined to be in a sleep state or not in use.
结合第三方面的第十一种可能的实现方式, 在第十二种可能的实现方式 中,所述统计标识获取模块,还用于根据所述 FPGA业务程序的运行状态信息 获取统计信息,所述统计信息包括版本标识、信息类型、信息长度、传输标识、 目标资源类型以及统计标识。 In conjunction with the eleventh possible implementation of the third aspect, in a twelfth possible implementation The statistical identifier obtaining module is further configured to obtain statistical information according to the running state information of the FPGA service program, where the statistical information includes a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a statistical identifier.
结合第一方面可能的实现方式,在第十三种可能的实现方式中, 所述资源 调度单元,还用于当将所述资源存储单元存储到所述调度緩沖区中的可重入资 源调度到所述 FPGA中时获取调度标识,所述调度标识用于指示所述存储到所 述调度緩沖区中的可重入资源已成功调度到所述 FPGA中。  In conjunction with the possible implementation of the first aspect, in a thirteenth possible implementation, the resource scheduling unit is further configured to: when the resource storage unit is stored in the scheduling buffer, reentrant resource scheduling A scheduling identifier is obtained when the FPGA is in use, and the scheduling identifier is used to indicate that the reentrant resource stored in the scheduling buffer has been successfully scheduled into the FPGA.
结合第一方面的第十三种可能的实现方式, 在第十四种可能的实现方式 中, 所述资源调度单元,还用于当所述资源存储单元将存储到所述调度緩沖区 中的可重入资源调度到所述 FPGA中时获取调度状态信息,所述调度状态信息 包括版本标识、信息类型、信息长度、传输标识、 目标资源类型以及调度标识。  With reference to the thirteenth possible implementation manner of the first aspect, in a fourteenth possible implementation, the resource scheduling unit is further configured to: when the resource storage unit is to be stored in the scheduling buffer The scheduling state information is obtained when the reentrant resource is scheduled into the FPGA, and the scheduling state information includes a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a scheduling identifier.
本发明第四方面提供一种可重入资源调度设备, 所述设备包括 FPGA、 存 储器以及处理器, 其中, 所述存储器包括调度緩沖区, 所述存储器中存储一组 程序代码,且所述处理器用于调用存储器中存储的程序代码, 用于执行以下操 作:  A fourth aspect of the present invention provides a re-entrant resource scheduling device, where the device includes an FPGA, a memory, and a processor, where the memory includes a scheduling buffer, the memory stores a set of program codes, and the processing It is used to call the program code stored in the memory to perform the following operations:
监控可重入资源的运行状态信息;  Monitor operational status information of reentrant resources;
根据所述可重入资源的运行状态信息, 确定所述可重入资源满足调度条 件;  Determining, according to the running status information of the reentrant resource, that the reentrant resource meets a scheduling condition;
将所述满足调度条件的可重入资源存储到所述调度緩沖区中,其中所述存 储到所述调度緩沖区中的可重入资源的格式为经过转换的能被所述 FPGA识 别的格式;  Storing the reentrant resource satisfying the scheduling condition into the scheduling buffer, wherein the format of the reentrant resource stored in the scheduling buffer is a converted format that can be recognized by the FPGA ;
将所述存储到所述调度緩沖区中的可重入资源调度到所述 FPGA中,使所 述可重入资源成为 FPGA业务程序。  The reentrant resources stored in the scheduling buffer are dispatched to the FPGA to cause the reentrant resources to become FPGA service programs.
本发明实施例中,通过监控得到的可重入资源的运行状态信息,确定所述 可重入资源满足调度条件,并将所述满足调度条件的可重入资源存储到调度緩 沖区中,其中所述存储到所述调度緩沖区中的可重入资源的格式为经过转换的 能被所述 FPGA识别的格式,进一步的将存储到所述调度緩沖区中的所述可重 入资源调度到 FPGA中,使所述可重入资源成为 FPGA业务程序,可自动实现 根据监控得到的可重入资源的运行状态信息,将所述满足调度条件的可重入资 源调度到 FPGA中, 提升工作效率。 附图说明 In the embodiment of the present invention, by monitoring the obtained running state information of the reentrant resource, determining that the reentrant resource meets the scheduling condition, and storing the reentrant resource that meets the scheduling condition into the scheduling buffer, where The format of the reentrant resource stored in the scheduling buffer is a converted format recognizable by the FPGA, and further scheduling the reentrant resource stored in the scheduling buffer to In the FPGA, the reentrant resource is made into an FPGA service program, and the running state information of the reentrant resource obtained according to the monitoring is automatically implemented, and the re-entry resource satisfying the scheduling condition is used. The source is dispatched to the FPGA to improve work efficiency. DRAWINGS
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例中所需要使用的附图作筒单地介绍,显而易见地, 下面描述中的附图仅仅是 本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的 前提下, 还可以根据这些附图获得其他的附图。  In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings to be used in the embodiments will be briefly described below. Obviously, the drawings in the following description are only the present invention. In some embodiments, other drawings may be obtained from those of ordinary skill in the art in light of the inventive work.
图 1为本发明实施例提供的一种可重入资源调度方法的流程示意图; 图 2为本发明另一实施例提供的一种可重入资源调度方法的流程示意图; 图 3为本发明实施例提供的一种用户程序的调度状态机示意图; 图 4为本发明另一实施例提供的一种可重入资源调度方法的流程示意图; 图 5为本发明实施例提供的一种内核驱动程序的调度状态机示意图; 图 6为本发明另一实施例提供的一种可重入资源调度方法的流程示意图; 图 7为本发明实施例提供的一种 FPGA业务程序的调度状态机示意图; 图 8为本发明实施例提供的一种可重入资源调度设备的结构示意图; 图 9为本发明实施例提供的图 8的条件确定单元的结构示意图; 图 10为本发明实施例提供的图 9的条件确定模块的结构示意图; 图 11为本发明实施例提供的图 8的状态监控单元的结构示意图; 图 12为本发明实施例提供的图 8的资源存储单元的结构示意图; 图 13为本发明实施例提供的图 8的资源删除单元的结构示意图; 图 14为本发明实施例提供的一种可重入资源调度系统的结构示意图。 具体实施方式  FIG. 1 is a schematic flowchart of a re-entry resource scheduling method according to an embodiment of the present invention; FIG. 2 is a schematic flowchart of a reentrant resource scheduling method according to another embodiment of the present invention; FIG. 4 is a schematic flowchart of a re-entry resource scheduling method according to another embodiment of the present invention; FIG. 5 is a schematic diagram of a kernel driver according to an embodiment of the present invention; FIG. 6 is a schematic flowchart of a re-entry resource scheduling method according to another embodiment of the present invention; FIG. 7 is a schematic diagram of a scheduling state machine of an FPGA service program according to an embodiment of the present invention; 8 is a schematic structural diagram of a re-entrant resource scheduling device according to an embodiment of the present invention; FIG. 9 is a schematic structural diagram of a condition determining unit of FIG. 8 according to an embodiment of the present invention; FIG. 10 is a schematic diagram of FIG. FIG. 11 is a schematic structural diagram of a state monitoring unit of FIG. 8 according to an embodiment of the present invention; FIG. 12 is a schematic diagram of the present invention; FIG. 13 is a schematic structural diagram of a resource deletion unit of FIG. 8 according to an embodiment of the present invention; FIG. 14 is a re-entrant resource scheduling system according to an embodiment of the present invention; Schematic diagram of the structure. detailed description
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。  BRIEF DESCRIPTION OF THE DRAWINGS The technical solutions in the embodiments of the present invention will be described in detail below with reference to the accompanying drawings. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative work are within the scope of the present invention.
请参见图 1 , 图 1为本发明实施例提供的一种可重入资源调度方法的流程 示意图, 所述方法用于可重入资源调度系统, 所述可重入资源调度系统包括操 作系统、 调度緩沖区以及现场可编辑逻辑门阵列 FPGA, 其中所述操作系统用 于执行以下步骤: Referring to FIG. 1, FIG. 1 is a flowchart of a reentrant resource scheduling method according to an embodiment of the present invention. The method is used in a re-entrant resource scheduling system, where the re-entrant resource scheduling system includes an operating system, a scheduling buffer, and a field editable logic gate array FPGA, wherein the operating system is configured to perform the following steps:
S101 , 监控可重入资源的运行状态信息。  S101. Monitor running status information of reentrant resources.
操作系统可以监控可重入资源的运行状态信息,所述可重入资源可以包括 用户程序和内核驱动程序。可选的,操作系统还可以监控 FPGA业务程序的运 行状态信息。  The operating system can monitor operational status information for reentrant resources, which can include user programs and kernel drivers. Optionally, the operating system can also monitor the operational status information of the FPGA business program.
具体的,操作系统中的监控模块可以向可重入资源和 FPGA业务程序发送 状态请求信息,以使所述可重入资源和 FPGA业务程序根据所述状态请求信息 返回运行状态信息,所述运行状态信息可以包括处于可运行状态的用户程序占 用的内存使用量是否到达预设阈值,或者包括内核驱动程序是否处于被使用状 态,或者包括 FPGA业务程序是否处于睡眠状态或未被使用状态,进而监控模 块可以接收所述可重入资源或 FPGA业务程序返回的运行状态信息,其中所述 状态请求信息可以用于指示以下信息: 版本标识、 信息类型、 信息长度、 传输 标识以及目标资源类型, 所述运行状态信息可以包括版本标识、信息类型、信 息长度、 传输标识以及目标资源类型。  Specifically, the monitoring module in the operating system may send status request information to the reentrant resource and the FPGA service program, so that the reentrant resource and the FPGA service program return the running status information according to the status request information, where the operation The status information may include whether the memory usage occupied by the user program in a runnable state reaches a preset threshold, or whether the kernel driver is in a used state, or whether the FPGA service program is in a sleep state or an unused state, thereby monitoring The module may receive the re-entrant resource or operational status information returned by the FPGA service program, where the status request information may be used to indicate the following information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type, The operational status information may include a version identification, an information type, an information length, a transmission identification, and a target resource type.
Busy Information Request Message Busy Information Request Message
Header  Header
Version: 0x00  Version: 0x00
Message Type: FPGA Busy Request Information  Message Type: FPGA Busy Request Information
Length: 24  Length: 24
Transaction ID: 0  Transaction ID: 0
Busy Information Request  Busy Information Request
Type: User APP/ Kernel Module I FPGA img  Type: User APP/ Kernel Module I FPGA img
Body: ***** //不同 type填充请求部分  Body: ***** //Different type fill request section
示例性的状态请求信息的信息格式如上所示,所述状态请求信息中的版本 标识可以是 0x00,信息类型可以是 FPGA忙碌请求信息,信息长度可以是 24bit 比特, 传输标识可以是 " 0" , 目标资源类型可以是用户程序、 内核驱动程序或 FPGA业务程序, 所述状态请求信息还可以包括目标资源的标识信息, 所述目 标资源的标识信息可以是目标资源的填充请求。操作系统向用户程序、 内核驱 动程序以及 FPGA业务程序广播状态请求信息,所述用户程序、 内核驱动程序 以及 FPGA业务程序接收到所述状态请求信息后,返回运行状态信息,所述运 行状态信息可以包括版本标识、 信息类型、 信息长度、 传输标识以及目标资源 类型。 The information format of the exemplary status request information is as shown above. The version identifier in the status request information may be 0x00, the information type may be FPGA busy request information, the information length may be 24 bit bits, and the transmission identifier may be “0”. The target resource type may be a user program, a kernel driver, or an FPGA service program, and the status request information may further include identification information of the target resource, where the target The identification information of the target resource may be a fill request of the target resource. The operating system broadcasts status request information to the user program, the kernel driver, and the FPGA service program, and the user program, the kernel driver, and the FPGA service program return the running status information after receiving the status request information, and the running status information may be Includes version ID, information type, message length, transport ID, and target resource type.
Busy Information Reply Message  Busy Information Reply Message
Header  Header
Version: 0x00  Version: 0x00
Message Type: FPGA Busy Reply Information  Message Type: FPGA Busy Reply Information
Length: 24  Length: 24
Transaction ID: 0  Transaction ID: 0
Busy Information Reply  Busy Information Reply
Type: User APP/ Kernel Module I FPGA img  Type: User APP/ Kernel Module I FPGA img
Body: ***** // User App Status : high / low  Body: ***** // User App Status : high / low
// kernel module Used by : used / not used  // kernel module Used by : used / not used
// FPGA img Status : high / low  // FPGA img Status : high / low
示例性的运行状态信息的信息格式如上所示,所述运行状态信息中的版本 标识可以是 0x00,信息类型可以是 FPGA忙碌响应信息,信息长度可以是 24bit, 传输标识可以是 " 0" , 目标资源类型可以是用户程序、 内核驱动程序或 FPGA 业务程序, 例如处于可运行状态的用户程序占用的内存使用量到达预设阈值 时, 所述用户程序的运行状态可以是 high 负载高; 内核驱动程序处于被使用 状态时, 所述内核驱动程序的运行状态可以是 used被使用; FPGA业务程序 处于睡眠状态或未被使用状态时, 所述 FPGA 业务程序的运行状态可以是空 闲。  The information format of the exemplary running state information is as shown above, the version identifier in the running state information may be 0x00, the information type may be FPGA busy response information, the information length may be 24 bits, and the transmission identifier may be “0”, the target The resource type may be a user program, a kernel driver, or an FPGA business program. For example, when the memory usage occupied by the user program in a runnable state reaches a preset threshold, the running state of the user program may be high load; the kernel driver When in the used state, the running state of the kernel driver may be used; when the FPGA service program is in a sleep state or an unused state, the running state of the FPGA service program may be idle.
S102, 根据可重入资源的运行状态信息, 确定可重入资源满足调度条件。 操作系统可以根据所述可重入资源的运行状态信息,确定所述可重入资源 满足调度条件。  S102. Determine, according to the running status information of the reentrant resource, that the reentrant resource satisfies the scheduling condition. The operating system may determine, according to the running status information of the reentrant resource, that the reentrant resource satisfies the scheduling condition.
具体实现中, 所述可重入资源为用户程序时,操作系统中的监控模块可以 根据接收到的所述用户程序的运行状态信息,确定所述用户程序处于可运行状 态,当所述用户程序处于可运行状态时,则确定所述可重入资源满足调度条件。 可选的,操作系统当确定所述用户程序处于可运行状态时,还可以确定所述处 于可运行状态的用户程序占用的内存使用量到达预设阈值,当所述处于可运行 状态的用户程序占用的内存使用量到达预设阈值时,则确定所述可重入资源满 足调度条件。 In a specific implementation, when the reentrant resource is a user program, the monitoring module in the operating system may determine, according to the received running state information of the user program, that the user program is in a runnable state. And when the user program is in an operational state, determining that the reentrant resource satisfies a scheduling condition. Optionally, when determining that the user program is in a runnable state, the operating system may further determine that the memory usage occupied by the user program in the operable state reaches a preset threshold, when the user program is in a runnable state. When the occupied memory usage reaches a preset threshold, it is determined that the reentrant resource satisfies the scheduling condition.
所述可重入资源为内核驱动程序时,操作系统中的监控模块可以根据接收 到的所述内核驱动程序的运行状态信息,确定所述内核驱动程序处于被使用状 态, 进而当所述内核驱动程序处于被使用状态时, 则确定所述可重入资源满足 调度条件。  When the reentrant resource is a kernel driver, the monitoring module in the operating system may determine, according to the received running state information of the kernel driver, that the kernel driver is in a used state, and then when the kernel driver When the program is in the used state, it is determined that the reentrant resource satisfies the scheduling condition.
可选的,操作系统中的监控模块还可以根据接收到的 FPGA业务程序的运 行状态信息, 确定所述 FPGA业务程序处于睡眠状态或未被使用状态。  Optionally, the monitoring module in the operating system may further determine, according to the running status information of the received FPGA service program, that the FPGA service program is in a sleep state or an unused state.
S103, 将满足调度条件的可重入资源存储到调度緩沖区中。  S103. Store the reentrant resource that meets the scheduling condition into the scheduling buffer.
操作系统可以将所述满足调度条件的可重入资源存储到调度緩沖区中,其 中所述存储到所述调度緩沖区中的可重入资源的格式为经过转换的能被所述 FPGA识别的格式。 可选的, 操作系统还可以删除所述确定处于睡眠状态或未 被使用状态的 FPGA业务程序,进一步可选的,操作系统还可以将所述确定处 于睡眠状态或未被使用状态的 FPGA业务程序调度到调度緩沖区中。  The operating system may store the reentrant resource satisfying the scheduling condition into a scheduling buffer, wherein the format of the reentrant resource stored in the scheduling buffer is converted to be recognized by the FPGA format. Optionally, the operating system may further delete the FPGA service program that is determined to be in a sleep state or an unused state. Further, the operating system may further use the FPGA service program that is determined to be in a sleep state or an unused state. Dispatched into the dispatch buffer.
具体的,操作系统中的监控模块接收到运行状态信息后,操作系统中的管 理模块可以生成统计请求信息, 并将所述统计请求信息发送给监控模块, 以使 阈值时,或者当所述内核驱动程序处于被使用状态时,或者当所述 FPGA业务 程序处于睡眠状态或未被使用状态时, 管理模块获取监控模块返回的统计标 识,所述统计标识用于指示处于可运行状态的用户程序占用的内存使用量到达 预设阈值,或者所述内核驱动程序处于被使用状态,或者所述 FPGA业务程序 处于睡眠状态或未被使用状态, 进一步的, 管理模块还可以获取监控模块返回 的统计信息。进一步的操作系统可以根据所述获取到的可重入资源或 FPGA业 务程序的统计信息, 将所述可重入资源存储到调度緩沖区中, 或删除所述 FPGA业务程序。 操作系统将所述可重入资源存储到调度緩沖区中之后, 还可 以对所述可重入资源设定优先级,其中所述统计请求信息可以用于指示以下信 息: 版本标识、 信息类型、 信息长度、 传输标识以及目标资源类型, 所述统计 信息可以包括版本标识、 信息类型、 信息长度、 传输标识、 目标资源类型以及 统计标识, 例如所述可重入资源是用户程序, 所述用户程序的运行状态是负载 高, 则管理模块获取到的所述用户程序的统计标识为 "Γ , 用于指示所述处于 可运行状态的用户程序占用的内存使用量到达预设阈值;若所述用户程序的运 行状态是负载低, 则管理模块获取到的所述用户程序的统计标识为 "0" , 用于 指示所述用户程序未处于可运行状态,或者处于可运行状态的用户程序占用的 内存使用量未到达预设阈值。 Specifically, after the monitoring module in the operating system receives the running status information, the management module in the operating system may generate statistical request information, and send the statistical request information to the monitoring module to enable the threshold, or when the kernel When the driver is in the used state, or when the FPGA service program is in the sleep state or the unused state, the management module acquires the statistical identifier returned by the monitoring module, and the statistical identifier is used to indicate that the user program is in the operable state. The memory usage reaches a preset threshold, or the kernel driver is in a used state, or the FPGA service program is in a sleep state or an unused state. Further, the management module may further acquire statistics returned by the monitoring module. The further operating system may store the reentrant resource in the scheduling buffer or delete the FPGA service program according to the obtained re-entrant resource or statistical information of the FPGA service program. After the operating system stores the reentrant resource in the scheduling buffer, the re-entrant resource may also be prioritized, wherein the statistical request information may be used to indicate the following letter Information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type, where the statistical information may include a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a statistical identifier, such as the reentrant resource. Is a user program, where the running status of the user program is high, and the statistical identifier of the user program acquired by the management module is “Γ”, which is used to indicate that the memory usage occupied by the user program in the executable state reaches a preset threshold; if the running state of the user program is a low load, the statistical identifier of the user program acquired by the management module is "0", which is used to indicate that the user program is not in an operable state, or is in a The memory usage occupied by the running user program does not reach the preset threshold.
FPGA Busy Stastic Information Message FPGA Busy Stastic Information Message
Header  Header
Version: 0x00  Version: 0x00
Message Type: FPGA Busy Stastic Information  Message Type: FPGA Busy Stastic Information
Length: 32  Length: 32
Transaction ID: 1  Transaction ID: 1
Busy Stastic Request  Busy Stastic Request
Message Type: FPGA Busy Stastic Information Request  Message Type: FPGA Busy Stastic Information Request
Type: User APP/ Kernel Module I FPGA img  Type: User APP/ Kernel Module I FPGA img
Flag: 0/1 〃资源空闲与繁忙  Flag: 0/1 〃 Resources are idle and busy
Busy Stastic Reply  Busy Stastic Reply
Message Type: FPGA Busy Stastic Information Reply  Message Type: FPGA Busy Stastic Information Reply
Type: User APP/ Kernel Module I FPGA img  Type: User APP/ Kernel Module I FPGA img
Flag: 0/1 〃资源空闲与繁忙  Flag: 0/1 〃 Resources are idle and busy
示例性的统计请求信息和统计信息的信息格式如上所示,所述统计请求信 息用于指示版本标识、 信息类型、 信息长度、 传输标识以及目标资源类型, 管 理模块接收到的所述统计信息中的版本标识可以是 0x00, 信息类型可以是 FPGA忙碌统计信息, 信息长度可以是 32bit, 传输标识可以是 " Γ , 目标资源 类型可以是用户程序、 内核驱动程序或 FPGA业务程序,统计标识用于指示处 于可运行状态的用户程序占用的内存使用量到达预设阈值,或者内核驱动程序 处于被使用状态,或者 FPGA业务程序处于睡眠状态或未被使用状态,例如当 处于可运行状态的用户程序占用的内存使用量到达预设阈值时,则所述获取到 的统计标识可以为 "Γ , 表示所述用户程序处于忙碌状态。 The information format of the exemplary statistical request information and the statistical information is as shown in the above, and the statistical request information is used to indicate the version identifier, the information type, the information length, the transmission identifier, and the target resource type, and the statistical information received by the management module. The version identifier can be 0x00, the information type can be FPGA busy statistics, the information length can be 32bit, the transmission identifier can be "Γ, the target resource type can be a user program, a kernel driver or an FPGA service program, and the statistical identifier is used to indicate The amount of memory used by a user program in a runnable state reaches a preset threshold, or the kernel driver is in a used state, or the FPGA business program is in a sleep state or is not in use, such as when When the memory usage of the user program in the runnable state reaches the preset threshold, the obtained statistical identifier may be “Γ”, indicating that the user program is in a busy state.
S104,将存储到调度緩沖区中的可重入资源调度到 FPGA中,使所述可重 入资源成为 FPGA业务程序。  S104. Dispatch the reentrant resource stored in the scheduling buffer into the FPGA, so that the reentrant resource becomes an FPGA service program.
操作系统可以将存储到调度緩沖区中的可重入资源调度到 FPGA中,使所 述可重入资源成为 FPGA业务程序,其中操作系统可以根据预设的优先级,将 调度緩沖区中的优先级最高的可重入资源调度到 FPGA中,使所述可重入资源 成为 FPGA业务程序, 并在所述 FPGA中运行所述可重入资源。  The operating system can schedule the reentrant resources stored in the scheduling buffer into the FPGA, so that the reentrant resource becomes an FPGA service program, wherein the operating system can prioritize the scheduling buffer according to a preset priority. The highest re-entrant resource is scheduled into the FPGA, making the reentrant resource an FPGA service program and running the reentrant resource in the FPGA.
具体的,操作系统中的调度模块可以生成调度请求信息,将所述调度请求 信息发送给管理模块,以使管理模块返回所述调度请求信息中的目标资源类型 对应的统计标识,进而调度模块根据所述统计标识将存储到调度緩沖区中的可 重入资源调度到调度緩沖区中,或者根据所述统计标识删除 FPGA中的 FPGA 业务程序,当存储到所述调度緩沖区中的所述可重入资源调度到所述 FPGA中 时,调度模块可以获取调度标识, 所述调度标识用于指示所述存储到所述调度 緩沖区中的可重入资源已成功调度到所述 FPGA中,例如, 当存储到所述调度 緩沖区中的所述可重入资源已成功调度到所述 FPGA中时,操作系统获取到的 调度标识可以为 "Γ; 当存储到所述调度緩沖区中的所述可重入资源未成功调 度到所述 FPGA 中时, 操作系统获取到的调度标识可以为 "0"。 针对 FPGA 业务程序, 当操作系统已成功删除所述 FPGA业务程序时,操作系统获取到的 调度标识可以为 "Γ; 当未成功删除所述 FPGA业务程序时, 操作系统获取到 的调度标识可以为 "0"。 当将存储到所述调度緩沖区中的可重入资源调度到所 述 FPGA中时,操作系统还可以获取调度状态信息,所述调度状态信息可以包 括版本标识、 信息类型、 信息长度、 传输标识、 目标资源类型以及调度标识。  Specifically, the scheduling module in the operating system may generate scheduling request information, and send the scheduling request information to the management module, so that the management module returns a statistical identifier corresponding to the target resource type in the scheduling request information, and the scheduling module further The statistical identifier schedules the reentrant resource stored in the scheduling buffer into the scheduling buffer, or deletes the FPGA service program in the FPGA according to the statistical identifier, when the storage into the scheduling buffer is The scheduling module may obtain a scheduling identifier, where the scheduling identifier is used to indicate that the reentrant resource stored in the scheduling buffer has been successfully scheduled into the FPGA, for example, When the reentrant resource stored in the scheduling buffer has been successfully scheduled into the FPGA, the scheduling identifier acquired by the operating system may be “Γ; when stored in the scheduling buffer When the reentrant resource is not successfully scheduled into the FPGA, the scheduling identifier obtained by the operating system may be "0". In the sequence, when the operating system has successfully deleted the FPGA service program, the scheduling identifier obtained by the operating system may be “Γ; when the FPGA service program is not successfully deleted, the scheduling identifier acquired by the operating system may be "0". . The operating system may also acquire scheduling state information, where the scheduling state information may include a version identifier, an information type, an information length, and a transmission identifier, when the reentrant resource stored in the scheduling buffer is scheduled into the FPGA. , target resource type, and schedule ID.
进一步的,操作系统可以根据所述调度状态信息中的调度标识, 判断所述 可重入资源或 FPGA业务程序调度是否成功,若调度状态信息中的调度标识是 "1" , 则表示所述可重入资源调度成功或 FPGA业务程序已成功删除; 若调度 状态信息中的调度标识是 "0" ,则表示所述可重入资源调度未成功或 FPGA业 务程序未成功删除, 可选的,操作系统可以到达预设时间时重新将存储到调度 緩沖区中的所述可重入资源调度到 FPGA中,或到达预设时间时再次删除所述 FPGA业务程序。 Further, the operating system may determine, according to the scheduling identifier in the scheduling state information, whether the reentrant resource or the FPGA service program scheduling is successful, and if the scheduling identifier in the scheduling state information is “1”, the If the re-entrant resource scheduling is successful or the FPGA service program has been successfully deleted; if the scheduling identifier in the scheduling status information is "0", it indicates that the reentrant resource scheduling is unsuccessful or the FPGA service program is not successfully deleted, optionally, operation The system may re-schedule the reentrant resource stored in the scheduling buffer to the FPGA when the preset time is reached, or delete the second time when the preset time is reached. FPGA business process.
HW Process Schedule Message HW Process Schedule Message
Header  Header
Version: 0x00  Version: 0x00
Message Type: HW Process Schedule Information  Message Type: HW Process Schedule Information
Length: 64  Length: 64
Transaction ID: 2  Transaction ID: 2
HW Processs Schdule Request  HW Processs Schdule Request
Message Type: HW Process Schedule Information Request  Message Type: HW Process Schedule Information Request
Type: User APP/ Kernel Module I FPGA img  Type: User APP/ Kernel Module I FPGA img
Flag: 0/1 //资源调度失败或成功  Flag: 0/1 //The resource schedule failed or succeeded.
HW Processs Schdule Reply  HW Processs Schdule Reply
Message Type: HW Process Schedule Information Reply  Message Type: HW Process Schedule Information Reply
Type: User APP/ Kernel Module I FPGA img  Type: User APP/ Kernel Module I FPGA img
Flag: 0/1 //资源调度失败或成功  Flag: 0/1 //The resource schedule failed or succeeded.
示例性的调度状态信息的信息格式如上所示,所述调度状态信息中的版本 标识可以是 0x00, 信息类型可以是资源调度信息, 信息长度可以是 64bit, 传 输标识可以是 "2" , 目标资源类型可以是用户程序、 内核驱动程序或 FPGA业 务程序, 调度标识可以是 "0" 或 "Γ , 其中调度标识 "0" 用于指示所述可重 入资源调度失败或 FPGA业务程序未成功删除, 调度标识 "Γ 用于指示所述 可重入资源调度成功或 FPGA业务程序已成功删除。  The information format of the exemplary scheduling state information is as shown above. The version identifier in the scheduling state information may be 0x00, the information type may be resource scheduling information, the information length may be 64 bits, and the transmission identifier may be "2", the target resource. The type may be a user program, a kernel driver, or an FPGA business program, and the scheduling identifier may be "0" or "Γ, where the scheduling identifier "0" is used to indicate that the reentrant resource scheduling fails or the FPGA service program is not successfully deleted. The scheduling identifier "" is used to indicate that the reentrant resource scheduling is successful or the FPGA service program has been successfully deleted.
在图 1所示的可重入资源调度方法中,操作系统通过监控得到的可重入资 源的运行状态信息,确定所述可重入资源满足调度条件, 将所述满足调度条件 的可重入资源存储到调度緩沖区中,并将存储到所述调度緩沖区中的所述可重 入资源调度到 FPGA中,使所述可重入资源成为 FPGA业务程序,可自动实现 根据监控得到的可重入资源的运行状态信息,将满足调度条件的可重入资源调 度到 FPGA中, 提升工作效率。 请参见图 2, 图 2为本发明另一实施例提供的一种可重入资源调度方法的 流程示意图,本发明实施例是以用户程序为例对所述可重入资源调度方法进行 描述的, 所述方法用于可重入资源调度系统, 所述可重入资源调度系统包括操 作系统、 调度緩沖区以及现场可编辑逻辑门阵列 FPGA, 其中所述操作系统用 于执行以下步骤: In the re-entrant resource scheduling method shown in FIG. 1 , the operating system determines that the reentrant resource meets the scheduling condition by monitoring the obtained running state information of the reentrant resource, and the re-entrant that satisfies the scheduling condition is determined. The resource is stored in the scheduling buffer, and the reentrant resource stored in the scheduling buffer is scheduled into the FPGA, so that the reentrant resource becomes an FPGA service program, and the obtained according to the monitoring can be automatically implemented. Re-enter the running status information of the resource, and schedule the reentrant resources satisfying the scheduling condition to the FPGA to improve work efficiency. Referring to FIG. 2, FIG. 2 is a flowchart of a reentrant resource scheduling method according to another embodiment of the present invention. In the embodiment of the present invention, the re-entrant resource scheduling method is described by using a user program as an example. The method is used in a re-entrant resource scheduling system, where the re-entrant resource scheduling system includes an operating system. A scheduling buffer and a field editable logic gate array FPGA, wherein the operating system is configured to perform the following steps:
S201 , 监控用户程序的运行状态信息。  S201. Monitor operation status information of the user program.
操作系统可以监控用户程序的运行状态信息, 具体的,操作系统中的监控 模块可以向用户程序发送状态请求信息,以使所述用户程序根据所述状态请求 信息返回运行状态信息,所述运行状态信息可以包括处于可运行状态的用户程 序占用的内存使用量是否到达预设阈值,进而监控模块接收所述用户程序返回 的运行状态信息。 其中所述状态请求信息可以用于指示以下信息: 版本标识、 信息类型、 信息长度、 传输标识以及目标资源类型, 所述运行状态信息可以包 括版本标识、 信息类型、 信息长度、 传输标识以及目标资源类型。  The operating system can monitor the running status information of the user program. Specifically, the monitoring module in the operating system can send status request information to the user program, so that the user program returns running status information according to the status request information, where the operating status is The information may include whether the memory usage occupied by the user program in the operable state reaches a preset threshold, and the monitoring module receives the running status information returned by the user program. The status request information may be used to indicate the following information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type, where the operation status information may include a version identifier, an information type, an information length, a transmission identifier, and a target resource. Types of.
如图 3所示, 图 3为用户程序的调度状态机示意图,操作系统可以监控用 户程序的运行状态信息, 用户程序的运行状态可以包括准备调度状态、可运行 状态、 忙碌状态以及空闲状态等。  As shown in FIG. 3, FIG. 3 is a schematic diagram of a scheduling state machine of a user program, and the operating system can monitor running state information of the user program, and the running state of the user program may include preparing a scheduling state, an operable state, a busy state, and an idle state.
S202,根据用户程序的运行状态信息,确定所述用户程序处于可运行状态。 操作系统可以根据用户程序的运行状态信息,确定所述用户程序处于可运 行状态, 所述可运行状态可以包括正在运行状态和准备运行状态。 操作系统确定所述用户程序处于可运行状态后,还可以确定所述用户程序 的内存使用量到达预设阈值, 例如所述用户程序的 CPU ( Central Processing Unit, 中央处理器)使用率到达预设比例, 操作系统中的监控模块接收到运行 状态信息后,操作系统中的管理模块可以生成统计请求信息, 并将所述统计请 求信息发送给监控模块,以使监控模块确定当所述处于可运行状态的用户程序 占用的内存使用量到达预设阈值时,管理模块获取监控模块返回的统计标识可 以为 "Γ , 统计标识 "Γ 用于指示处于可运行状态的用户程序占用的内存使 用量到达预设阈值, 即表示所述用户程序处于忙碌状态, 管理模块还可以获取 监控模块返回的统计信息, 所述统计信息可以包括版本标识、 信息类型、 信息 长度、 传输标识、 目标资源类型以及统计标识。 5204,将所述确定处于可运行状态且系统资源使用量到达预设阈值的用户 程序存储到调度緩沖区中。 述用户程序的统计标识为 "Γ ,操作系统中的管理模块可以根据所述统计标识 将所述用户程序存储到调度緩沖区中。 S202. Determine, according to the running status information of the user program, that the user program is in an operable state. The operating system may determine that the user program is in an executable state according to running state information of the user program, and the operable state may include a running state and a ready running state. After the operating system determines that the user program is in a runnable state, it may also determine that the memory usage of the user program reaches a preset threshold, for example, the CPU (Central Processing Unit) usage rate of the user program reaches a preset. After the monitoring module in the operating system receives the running status information, the management module in the operating system may generate statistical request information, and send the statistical request information to the monitoring module, so that the monitoring module determines that the operating module is operable. When the memory usage of the user program of the state reaches the preset threshold, the statistical identifier returned by the management module to obtain the monitoring module may be "Γ, statistical identifier" Γ used to indicate that the memory usage occupied by the user program in the operable state reaches the pre-pre- The threshold value indicates that the user program is in a busy state, and the management module may further obtain statistics information returned by the monitoring module, where the statistics information may include a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a statistical identifier. S204: Store the user program that is determined to be in a runnable state and the system resource usage reaches a preset threshold into a scheduling buffer. The statistical identifier of the user program is "Γ", and the management module in the operating system may store the user program into the scheduling buffer according to the statistical identifier.
5205, 将存储到调度緩沖区中的所述用户程序调度到 FPGA中。  5205. Dispatched the user program stored in the scheduling buffer into the FPGA.
操作系统可以根据所述用户程序的统计信息中的统计标识将存储到调度 緩沖区中的所述用户程序调度到 FPGA中,具体的,操作系统中的调度模块可 以生成调度请求信息,将所述调度请求信息发送给管理模块, 以使管理模块返 回所述调度请求信息中的目标资源类型对应的统计标识,进而调度模块根据所 述统计标识将存储到调度緩沖区中的用户程序调度到调度緩沖区中,其中操作 系统可以根据预设的优先级,将调度緩沖区中的优先级最高的所述用户程序调 度到 FPGA中, 使所述用户程序成为 FPGA业务程序, 并在所述 FPGA中运 行所述用户程序。  The operating system may schedule the user program stored in the scheduling buffer to the FPGA according to the statistical identifier in the statistical information of the user program. Specifically, the scheduling module in the operating system may generate scheduling request information, where The scheduling request information is sent to the management module, so that the management module returns a statistical identifier corresponding to the target resource type in the scheduling request information, and the scheduling module then schedules the user program stored in the scheduling buffer to the scheduling buffer according to the statistical identifier. In the area, the operating system may schedule the user program with the highest priority in the scheduling buffer to the FPGA according to a preset priority, so that the user program becomes an FPGA service program, and runs in the FPGA. The user program.
以图 3所示的用户程序的调度状态机示意图为例,操作系统监控到所述用 户程序处于准备调度状态, 当所述用户程序分配的时间片到达预设时间时,操 控到所述用户程序的系统资源使用量到达预设阈值,可以将所述用户程序从可 运行状态切换到忙碌状态,进而操作系统可以将所述用户程序存储到调度緩沖 区中, 并将调度緩沖区中的所述用户程序调度到 FPGA中,使所述用户程序成 为 FPGA业务程序,并在所述 FPGA中运行所述用户程序;若操作系统监控到 所述用户程序的系统资源使用量未到达预设阈值,可以将所述用户程序从可运 行状态切换到空闲状态,若操作系统监控到所述用户程序的系统资源使用量到 达预设阈值, 可以将所述用户程序从空闲状态切换到忙碌状态, 进而操作系统 可以将所述用户程序存储到调度緩沖区中,并将调度緩沖区中的所述用户程序 调度到 FPGA中, 使所述用户程序成为 FPGA业务程序, 并在所述 FPGA中 运行所述用户程序。  Taking the scheduling state machine diagram of the user program shown in FIG. 3 as an example, the operating system monitors that the user program is in a preparation scheduling state, and when the time slice allocated by the user program reaches a preset time, the user program is manipulated. The system resource usage reaches a preset threshold, and the user program can be switched from a runnable state to a busy state, and the operating system can store the user program in a scheduling buffer, and the Dispatching the user program into the FPGA, making the user program an FPGA service program, and running the user program in the FPGA; if the operating system monitors that the system resource usage of the user program does not reach a preset threshold, Switching the user program from an operational state to an idle state, and if the operating system monitors that the system resource usage of the user program reaches a preset threshold, the user program may be switched from an idle state to a busy state, and then the operating system The user program can be stored in a dispatch buffer and will be in the dispatch buffer User scheduler to the FPGA, the FPGA user program becomes business processes, and the user runs the program in the FPGA.
5206, 判断是否成功将存储到调度緩沖区中的用户程序调度到 FPGA中。 操作系统中的调度模块将存储到调度緩沖区中的用户程序调度到 FPGA 中时, 可以判断是否已成功将存储到调度緩沖区中的用户程序调度到 FPGA 中, 若是, 则执行步骤 S207; 若否, 则执行步骤 S208。 5206. Determine whether the user program stored in the scheduling buffer is successfully dispatched to the FPGA. The scheduling module in the operating system dispatches the user program stored in the dispatch buffer to the FPGA In the middle, it can be determined whether the user program stored in the scheduling buffer has been successfully dispatched into the FPGA, and if so, step S207 is performed; if not, step S208 is performed.
S207,若是, 则获取到的针对所述用户程序的调度状态信息中的调度标识 为 T。  S207. If yes, the acquired scheduling identifier in the scheduling status information for the user program is T.
若已成功将存储到调度緩沖区中的用户程序调度到 FPGA中,则操作系统 获取到的针对所述用户程序的调度标识可以为 "Γ ,所述调度标识用于指示所 述用户程序已成功调度到 FPGA中,操作系统还可以获取调度状态信息,其中 所述调度状态信息可以包括版本标识、 信息类型、 信息长度、 传输标识、 目标 资源类型以及调度标识。  If the user program stored in the scheduling buffer is successfully dispatched to the FPGA, the scheduling identifier for the user program acquired by the operating system may be “Γ, the scheduling identifier is used to indicate that the user program is successful. The scheduling may be performed by the operating system, where the operating system may also obtain scheduling status information, where the scheduling status information may include a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a scheduling identifier.
S208,若否, 则获取到的针对所述用户程序的调度状态信息中的调度标识 为 "0"。  S208. If no, the scheduling identifier in the acquired scheduling state information for the user program is "0".
若未成功将存储到调度緩沖区中的用户程序调度到 FPGA中,则操作系统 获取到的所述调度标识为 "0"。  If the user program stored in the dispatch buffer is not successfully dispatched to the FPGA, the scheduling identifier obtained by the operating system is "0".
进一步的,操作系统可以根据所述调度状态信息中的调度标识, 判断所述 用户程序调度是否成功, 若调度状态信息中的调度标识是 "Γ , 则表示所述用 户程序调度成功; 若调度状态信息中的调度标识是 "0" , 则表示所述用户程序 调度未成功, 可选的,操作系统可以到达预设时间时重新将所述用户程序存储 到调度緩沖区中, 并将存储到调度緩沖区中的所述用户程序调度到 FPGA中。  Further, the operating system may determine, according to the scheduling identifier in the scheduling state information, whether the scheduling of the user program is successful, and if the scheduling identifier in the scheduling state information is “Γ, indicating that the user program is successfully scheduled; If the scheduling identifier in the information is "0", it indicates that the user program scheduling is unsuccessful. Optionally, the operating system can re-store the user program into the scheduling buffer when the preset time is reached, and store it in the scheduling buffer. The user program in the buffer is dispatched to the FPGA.
在图 2和图 3所示的可重入资源调度方法中,操作系统根据监控得到的用 户程序的运行状态信息,确定所述用户程序处于可运行状态且系统资源使用量 到达预设阈值, 则将所述用户程序存储到调度緩沖区中, 并将调度緩沖区中的 所述用户程序调度到 FPGA中,进而根据调度结果设置针对所述用户程序的调 度状态信息中的调度标识,可自动实现根据监控得到的用户程序的运行状态信 息, 将所述满足调度条件的用户程序调度到 FPGA中, 提升工作效率。 请参见图 4, 图 4为本发明另一实施例提供的一种可重入资源调度方法的 流程示意图,本发明实施例是以内核驱动程序为例对所述可重入资源调度方法 进行描述的, 所述方法用于可重入资源调度系统, 所述可重入资源调度系统包 括操作系统、 调度緩沖区以及现场可编辑逻辑门阵列 FPGA, 其中所述操作系 统用于执行以下步骤: In the reentrant resource scheduling method shown in FIG. 2 and FIG. 3, the operating system determines that the user program is in a runnable state and the system resource usage reaches a preset threshold according to the monitored running state information of the user program. Storing the user program in a scheduling buffer, and scheduling the user program in the scheduling buffer to the FPGA, and then setting a scheduling identifier in the scheduling state information of the user program according to the scheduling result, which can be automatically implemented. The user program that satisfies the scheduling condition is dispatched to the FPGA according to the running state information of the monitored user program, thereby improving work efficiency. Referring to FIG. 4, FIG. 4 is a schematic flowchart of a method for re-entry resource scheduling according to another embodiment of the present invention. The embodiment of the present invention uses a kernel driver as an example to describe the reentrant resource scheduling method. The method is used in a reentrant resource scheduling system, where the reentrant resource scheduling system includes an operating system, a scheduling buffer, and a field editable logic gate array FPGA, wherein the operating system The system is used to perform the following steps:
5401 , 监控内核驱动程序的运行状态信息。  5401. Monitor the running status information of the kernel driver.
操作系统可以监控所述内核驱动程序的运行状态信息,具体的,操作系统 中的监控模块可以向内核驱动程序发送状态请求信息,以使所述内核驱动程序 根据所述状态请求信息返回运行状态信息,所述运行状态信息可以包括内核驱 动程序程序是否处于被使用状态,进而监控模块接收所述内核驱动程序返回的 运行状态信息。 其中所述状态请求信息可以用户指示以下信息: 版本标识、信 息类型、信息长度、传输标识以及目标资源类型, 所述运行状态信息可以包括 版本标识、 信息类型、 信息长度、 传输标识以及目标资源类型。  The operating system can monitor the running status information of the kernel driver. Specifically, the monitoring module in the operating system can send status request information to the kernel driver, so that the kernel driver returns the running status information according to the status request information. The running status information may include whether the kernel driver program is in a used state, and the monitoring module receives the running status information returned by the kernel driver. The status request information may indicate the following information by the user: a version identifier, an information type, an information length, a transmission identifier, and a target resource type, where the operation status information may include a version identifier, an information type, an information length, a transmission identifier, and a target resource type. .
如图 5所示, 图 5为内核驱动程序的调度状态机示意图,操作系统可以监 控内核驱动程序的运行状态信息,内核驱动程序的运行状态可以包括准备调度 状态、 可运行状态、 忙碌状态以及空闲状态等。  As shown in FIG. 5, FIG. 5 is a schematic diagram of a scheduling state machine of a kernel driver, and an operating system can monitor running state information of a kernel driver. The running state of the kernel driver may include preparing a scheduling state, an executable state, a busy state, and an idle state. Status, etc.
5402,根据内核驱动程序的运行状态信息,确定所述内核驱动程序处于被 使用状态。  5402. Determine, according to the running status information of the kernel driver, that the kernel driver is in a used state.
操作系统可以根据内核驱动程序的运行状态信息,确定所述内核驱动程序 处于被使用状态。  The operating system can determine that the kernel driver is in use according to the running state information of the kernel driver.
具体的,操作系统中的监控模块接收到运行状态信息后,操作系统中的管 理模块可以生成统计请求信息, 并将所述统计请求信息发送给监控模块, 以使 监控模块确定当所述内核驱动程序处于被使用状态时,管理模块获取监控模块 返回的所述内核驱动程序的统计标识,所述统计标识用于指示所述内核驱动程 序处于被使用状态, 例如操作系统确定所述内核驱动程序处于被使用状态, 则 可以将所述内核驱动程序的统计信息中的统计标识设置为 "Γ , 统计标识 "1" 表示所述内核驱动程序处于忙碌状态。  Specifically, after the monitoring module in the operating system receives the running status information, the management module in the operating system may generate statistical request information, and send the statistical request information to the monitoring module, so that the monitoring module determines when the kernel driver is When the program is in the used state, the management module acquires a statistical identifier of the kernel driver returned by the monitoring module, where the statistical identifier is used to indicate that the kernel driver is in a used state, for example, the operating system determines that the kernel driver is in a state In the used state, the statistical identifier in the statistical information of the kernel driver can be set to "Γ, the statistical identifier "1" indicates that the kernel driver is in a busy state.
沖区中。 具体的, 操作系统可以根据所述内核驱动程序的统计标识, 将所述处 于被使用状态的内核驱动程序存储到调度緩沖区中。 In the rushing area. Specifically, the operating system may store the kernel driver in the used state into the scheduling buffer according to the statistical identifier of the kernel driver.
S404, 将存储到调度緩沖区中的所述内核驱动程序调度到 FPGA中。 操作系统可以根据所述内核驱动程序的统计信息中的统计标识将存储到 调度緩沖区中的所述内核驱动程序调度到 FPGA中,具体的,操作系统中的调 度模块可以生成调度请求信息,将所述调度请求信息发送给管理模块, 以使管 理模块返回所述调度请求信息中的目标资源类型对应的统计标识,进而调度模 块根据所述统计标识将存储到调度緩沖区中的内核驱动程序调度到调度緩沖 区中, 其中操作系统可以根据预设的优先级,将调度緩沖区中的优先级最高的 所述内核驱动程序调度到 FPGA中,使所述内核驱动程序成为 FPGA业务程序, 并在所述 FPGA中运行所述内核驱动程序。 S404, scheduling the kernel driver stored in the scheduling buffer into the FPGA. The operating system can store the statistic identifier in the statistics of the kernel driver to Dispatching the kernel driver in the scheduling buffer to the FPGA. Specifically, the scheduling module in the operating system may generate scheduling request information, and send the scheduling request information to the management module, so that the management module returns the scheduling request. The statistical identifier corresponding to the target resource type in the information, and the scheduling module then schedules the kernel driver stored in the scheduling buffer to the scheduling buffer according to the statistical identifier, wherein the operating system may schedule according to the preset priority. The kernel driver with the highest priority in the buffer is dispatched into the FPGA, making the kernel driver an FPGA business program, and running the kernel driver in the FPGA.
以图 5所示的内核驱动程序的调度状态机示意图为例,操作系统监控到所 述内核驱动程序处于准备调度状态, 当内核驱动程序装载到操作系统中时,操 统监控到所述内核驱动程序当前正在被使用,可以将所述内核驱动程序从可运 行状态切换成忙碌状态,进而操作系统可以将所述内核驱动程序存储到调度緩 沖区中,将调度緩沖区中的所述内核驱动程序调度到 FPGA中,使所述内核驱 动程序成为 FPGA业务程序,并在所述 FPGA中运行所述内核驱动程序;若操 作系统监控到所述内核驱动程序未被使用,可以将所述内核驱动程序从可运行 状态切换成空闲状态,在操作系统监控到所述内核驱动程序被使用时, 可以将 所述内核驱动程序从可运行状态切换成忙碌状态,进而操作系统将所述内核驱 动程序存储到调度緩沖区中,进一步的将调度緩沖区中的所述内核驱动程序调 度到 FPGA中, 使所述内核驱动程序成为 FPGA业务程序, 并在所述 FPGA 中运行所述内核驱动程序。  Taking the schematic diagram of the scheduling state machine of the kernel driver shown in FIG. 5 as an example, the operating system monitors that the kernel driver is in a ready-to-schedule state, and when the kernel driver is loaded into the operating system, the kernel driver is monitored. The program is currently being used to switch the kernel driver from a runnable state to a busy state, and the operating system can store the kernel driver in a dispatch buffer that will dispatch the kernel driver in the buffer. Dispatching into the FPGA, making the kernel driver an FPGA business program, and running the kernel driver in the FPGA; if the operating system monitors that the kernel driver is not used, the kernel driver may be Switching from an operational state to an idle state, when the operating system monitors that the kernel driver is used, the kernel driver can be switched from an operational state to a busy state, and the operating system stores the kernel driver to In the dispatch buffer, the kernel drive in the dispatch buffer will be further The program is programmed into the FPGA to make the kernel driver an FPGA business program and to run the kernel driver in the FPGA.
5405,判断是否成功将存储到调度緩沖区中的内核驱动程序调度到 FPGA 中。  5405. Determine whether the kernel driver stored in the scheduling buffer is successfully dispatched into the FPGA.
操作系统将存储到调度緩沖区中的内核驱动程序调度到 FPGA中时,可以 判断是否已成功将存储到调度緩沖区中的内核驱动程序调度到 FPGA 中, 若 是, 则执行步骤 S406; 若否, 则执行步骤 S407。  When the operating system dispatches the kernel driver stored in the scheduling buffer to the FPGA, it can determine whether the kernel driver stored in the scheduling buffer has been successfully dispatched into the FPGA, and if yes, execute step S406; if not, Then step S407 is performed.
5406,若是, 则获取到的针对所述内核驱动程序的调度状态信息中的调度 标识为 T。  5406. If yes, the obtained scheduling identifier in the scheduling status information for the kernel driver is T.
若已成功将存储到调度緩沖区中的内核驱动程序调度到 FPGA中,则操作 系统获取到的针对所述内核驱动程序的调度标识可以为 "Γ , 其中所述调度状 态信息可以包括版本标识、 信息类型、 信息长度、 传输标识、 目标资源类型以 及调度标识。 If the kernel driver stored in the scheduling buffer has been successfully dispatched into the FPGA, the scheduling identifier obtained by the operating system for the kernel driver may be "Γ, where the scheduling state The state information may include a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a scheduling identifier.
S407,若否, 则获取到的针对所述内核驱动程序的调度状态信息中的调度 标识为 "0"。  S407. If not, the acquired scheduling identifier in the scheduling status information for the kernel driver is "0".
若未成功将存储到调度緩沖区中的内核驱动程序调度到 FPGA中,则操作 系统获取到的所述调度标识可以为 "0"。  If the kernel driver stored in the dispatch buffer is not successfully dispatched to the FPGA, the scheduling identifier obtained by the operating system may be "0".
进一步的,操作系统可以根据所述调度状态信息中的调度标识, 判断所述 内核驱动程序调度是否成功, 若调度状态信息中的调度标识是 "Γ , 则表示所 述内核驱动程序调度成功; 若调度状态信息中的调度标识是 "0" , 则表示所述 内核驱动程序调度未成功, 可选的,操作系统可以到达预设时间时重新将所述 内核驱动程序存储到调度緩沖区中,并将存储到调度緩沖区中的所述内核驱动 程序调度到 FPGA中。  Further, the operating system may determine, according to the scheduling identifier in the scheduling state information, whether the kernel driver scheduling is successful, and if the scheduling identifier in the scheduling state information is “Γ, indicating that the kernel driver is successfully scheduled; The scheduling identifier in the scheduling status information is "0", indicating that the kernel driver scheduling is unsuccessful. Optionally, the operating system may re-store the kernel driver into the scheduling buffer when the preset time is reached, and The kernel driver stored in the dispatch buffer is dispatched into the FPGA.
在图 4和图 5所示的可重入资源调度方法中,操作系统根据监控得到的内 核驱动程序的运行状态信息,确定所述内核驱动程序处于被使用状态, 则将所 述内核驱动程序存储到调度緩沖区中,并将调度緩沖区中的所述内核驱动程序 调度到 FPGA中,进而根据调度结果设置针对所述内核驱动程序的调度状态信 息中的调度标识, 可自动实现根据监控得到的内核驱动程序的运行状态信息, 将所述满足调度条件的内核驱动程序调度到 FPGA中, 提升工作效率。 请参见图 6, 图 6为本发明另一实施例提供的一种可重入资源调度方法的 流程示意图,本发明实施例是以 FPGA业务程序为例对所述可重入资源调度方 法进行描述的, 所述方法用于可重入资源调度系统, 所述可重入资源调度系统 包括操作系统、 调度緩沖区以及现场可编辑逻辑门阵列 FPGA, 其中所述操作 系统用于执行以下步骤:  In the reentrant resource scheduling method shown in FIG. 4 and FIG. 5, the operating system determines that the kernel driver is in a used state according to the monitored running state information of the kernel driver, and stores the kernel driver. Go to the scheduling buffer, and schedule the kernel driver in the scheduling buffer to the FPGA, and then set the scheduling identifier in the scheduling state information for the kernel driver according to the scheduling result, which can automatically implement the monitoring according to the monitoring result. The running status information of the kernel driver, and the kernel driver that satisfies the scheduling condition is dispatched to the FPGA to improve work efficiency. Referring to FIG. 6, FIG. 6 is a schematic flowchart of a method for re-entry resource scheduling according to another embodiment of the present invention. The embodiment of the present invention uses an FPGA service program as an example to describe the reentrant resource scheduling method. The method is used in a re-entrant resource scheduling system, where the re-entrant resource scheduling system includes an operating system, a scheduling buffer, and a field editable logic gate array FPGA, wherein the operating system is configured to perform the following steps:
S601 , 监控 FPGA业务程序的运行状态信息。  S601. Monitor operation status information of the FPGA service program.
操作系统可以监控 FPGA业务程序的运行状态信息,具体的,操作系统中 的监控模块可以向 FPGA业务程序发送状态请求信息,以使所述 FPGA业务程 序根据所述状态请求信息返回运行状态信息, 所述运行状态信息可以包括 FPGA业务程序是否处于睡眠状态或未被使用状态, 进而监控模块可以接收所 述 FPGA业务程序返回的运行状态信息,其中所述状态请求信息可以用于指示 以下信息: 版本标识、 信息类型、 信息长度、 传输标识以及目标资源类型, 所 述运行状态信息可以包括版本标识、信息类型、 信息长度、 传输标识以及目标 资源类型。 The operating system can monitor the running status information of the FPGA service program. Specifically, the monitoring module in the operating system can send status request information to the FPGA service program, so that the FPGA service program returns the running status information according to the status request information. The running status information may include whether the FPGA service program is in a sleep state or an unused state, and the monitoring module can receive the The running status information returned by the FPGA service program, where the status request information may be used to indicate the following information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type, where the running status information may include a version identifier and information. Type, length of information, transport ID, and target resource type.
如图 7所示, 图 7为 FPGA业务程序的调度状态机示意图,可重入资源调 度设备可以监控 FPGA业务程序的运行状态信息, FPGA业务程序的运行状态 可以包括准备调度状态、 可运行状态、 忙碌状态以及空闲状态等。  As shown in FIG. 7, FIG. 7 is a schematic diagram of a scheduling state machine of an FPGA service program. The reentrant resource scheduling device can monitor operation state information of an FPGA service program, and the running state of the FPGA service program can include preparing a scheduling state, an operable state, Busy and idle status.
5602, 根据 FPGA业务程序的运行状态信息, 确定所述 FPGA业务程序 处于睡眠状态或未被使用状态。  S602: Determine, according to the running status information of the FPGA service program, that the FPGA service program is in a sleep state or an unused state.
操作系统可以根据 FPGA业务程序的运行状态信息,确定所述 FPGA业务 程序处于睡眠状态, 其中睡眠状态即等待事件的发生或等待获取系统资源。可 选的,可重入资源调度设备还可以根据 FPGA业务程序的运行状态信息,确定 所述 FPGA业务程序处于未被使用状态。  The operating system may determine that the FPGA service program is in a sleep state according to the running status information of the FPGA service program, wherein the sleep state is waiting for an event to occur or waiting to acquire system resources. Optionally, the reentrant resource scheduling device may further determine that the FPGA service program is in an unused state according to the running status information of the FPGA service program.
操作系统中的监控模块接收到运行状态信息后,操作系统中的管理模块可 以生成统计请求信息, 并将所述统计请求信息发送给监控模块, 以使监控模块 确定当所述 FPGA业务程序处于睡眠状态或未被使用状态时,管理模块获取监 控模块返回的统计标识,所述统计标识用于指示所述 FPGA业务程序处于睡眠 状态或未被使用状态, 进一步的, 管理模块还可以获取监控模块返回的统计信 息, 统计信息可以包括版本标识、 信息类型、 信息长度、 传输标识、 目标资源 类型以及统计标识。若可重入资源调度设备确定所述 FPGA业务程序处于睡眠 状态或未被使用状态,则管理模块获取到的所述 FPGA业务程序的统计标识可 以为 "0" , 统计标识 "0" 表示所述 FPGA业务程序处于空闲状态。  After the monitoring module in the operating system receives the running status information, the management module in the operating system may generate statistical request information, and send the statistical request information to the monitoring module, so that the monitoring module determines that the FPGA service program is in sleep. The management module obtains the statistical identifier returned by the monitoring module, and the statistical identifier is used to indicate that the FPGA service program is in a sleep state or an unused state. Further, the management module may obtain the monitoring module to return. Statistics, statistics information can include version identifier, information type, information length, transmission identifier, target resource type, and statistical identifier. If the reentrant resource scheduling device determines that the FPGA service program is in a sleep state or an unused state, the statistical identifier of the FPGA service program acquired by the management module may be "0", and the statistical identifier "0" indicates the The FPGA business process is idle.
以图 7所示的 FPGA业务程序的调度状态机为例,操作系统可以根据监控 得到的 FPGA业务程序的运行状态信息,确定所述 FPGA业务程序处于空闲状 态, 即所述 FPGA业务程序处于睡眠状态或未被使用状态。  Taking the scheduling state machine of the FPGA service program shown in FIG. 7 as an example, the operating system may determine that the FPGA service program is in an idle state according to the monitored operating state information of the FPGA service program, that is, the FPGA service program is in a sleep state. Or not in use.
5603, 删除所述确定处于睡眠状态或未被使用状态的 FPGA业务程序。 操作系统可以根据所述 FPGA 业务程序的统计信息中的统计标识删除所 述 FPGA业务程序,可选的,操作系统还可以将所述处于睡眠状态或未被使用 状态的 FPGA业务程序调度到调度緩沖区中。具体的,若所述 FPGA业务程序 的统计标识为 "0" , 即所述 FPGA业务程序处于空闲状态, 也表示所述 FPGA 业务程序处于睡眠状态或未被使用状态,则删除所述确定处于睡眠状态或未被 使用状态的 FPGA业务程序,可选的,操作系统可以将所述 FPGA业务程序调 度到调度緩沖区中。本发明实施例通过将确定处于睡眠状态或确定处于未被使 用状态的 FPGA中的 FPGA业务程序删除, 在 FPGA中可以有多余的运行队 列以供操作系统将用户程序或内核驱动程序调度到所述运行队列中,进而在所 述运行队列中运行。 S603. Delete the FPGA service program that is determined to be in a sleep state or an unused state. The operating system may delete the FPGA service program according to the statistical identifier in the statistical information of the FPGA service program. Optionally, the operating system may also schedule the FPGA service program in the sleep state or the unused state to the scheduling buffer. In the district. Specifically, if the FPGA service program The statistical identifier is "0", that is, the FPGA service program is in an idle state, and also indicates that the FPGA service program is in a sleep state or an unused state, and the FPGA service that is determined to be in a sleep state or an unused state is deleted. The program, optionally, the operating system can schedule the FPGA business program into a scheduling buffer. In an embodiment of the present invention, by deleting an FPGA service program that is determined to be in a sleep state or determined to be in an unused state, there may be an extra run queue in the FPGA for the operating system to schedule the user program or the kernel driver to the Runs in the queue and runs in the run queue.
在图 7所示的 FPGA业务程序的调度状态机示意图中,操作系统监控到可 重入资源处于准备调度状态时,可以将所述调度緩沖区中的可重入资源调度到 FPGA中, 使所述可重入资源成为 FPGA业务程序, 并在所述 FPGA中运行所 述 FPGA业务程序, 所述 FPGA业务程序处于准备调度状态; 通过 FPGA上 电, 操作系统可以将所述 FPGA业务程序从准备调度状态切换成可运行状态; 若操作系统监控到所述 FPGA业务程序负载较低,可以将所述 FPGA业务程序 从可运行状态切换成空闲状态,进而操作系统可以根据所述 FPGA业务程序的 统计标识 "0" , 删除所述 FPGA业务程序, 并将所述 FPGA业务程序从 FPGA 调度到调度緩沖区中; 若操作系统监控到所述 FPGA业务程序负载较高,可以 将所述 FPGA业务程序从可运行状态切换成忙碌状态, 在 FPGA中加速运行; 若操作系统监控到所述 FPGA业务程序负载较低,可以将所述 FPGA业务程序 从忙碌状态切换成空闲状态,进而操作系统可以删除所述 FPGA业务程序, 并 将所述 FPGA业务程序从 FPGA调度到调度緩沖区中。  In the scheduling state machine diagram of the FPGA service program shown in FIG. 7, when the operating system monitors that the reentrant resource is in the ready scheduling state, the reentrant resource in the scheduling buffer may be scheduled into the FPGA. The reentrant resource becomes an FPGA service program, and the FPGA service program is run in the FPGA, and the FPGA service program is in a state of preparation for scheduling; and the operating system can prepare the FPGA service program from preparation for scheduling by powering on the FPGA. The state is switched to the runnable state; if the operating system monitors that the FPGA service program load is low, the FPGA service program may be switched from the runnable state to the idle state, and the operating system may be based on the statistical identifier of the FPGA service program. "0", deleting the FPGA service program, and scheduling the FPGA service program from the FPGA to the scheduling buffer; if the operating system monitors that the FPGA service program load is high, the FPGA service program may be The operating state is switched to a busy state, and the operation is accelerated in the FPGA; if the operating system monitors the FPGA service Order low load, the FPGA program service can be switched from the busy state to the idle state, and thus the operating system may delete the service program FPGA, and the FPGA from the FPGA traffic scheduler in the scheduling buffer.
S604, 判断是否成功删除所述 FPGA业务程序。  S604. Determine whether the FPGA service program is successfully deleted.
操作系统删除所述 FPGA 业务程序后, 可以判断是否已成功删除所述 FPGA业务程序, 若已成功删除所述 FPGA业务程序, 则执行步骤 S605; 若 未成功删除所述 FPGA业务程序, 则执行步骤 S606。  After the operating system deletes the FPGA service program, it may be determined whether the FPGA service program has been successfully deleted. If the FPGA service program has been successfully deleted, step S605 is performed; if the FPGA service program is not successfully deleted, the step is performed. S606.
S605,若是,则获取到的针对所述 FPGA业务程序的调度状态信息中的调 度标识为 T。  S605. If yes, the obtained scheduling identifier in the scheduling status information for the FPGA service program is T.
若已成功删除所述 FPGA业务程序,则操作系统获取到的针对所述 FPGA 业务程序的调度标识可以为 "Γ , 其中操作系统获取到的调度状态信息可以包 括版本标识、 信息类型、 信息长度、 传输标识、 目标资源类型以及调度标识。 S606,若否,则获取到的针对所述 FPGA业务程序的调度状态信息中的调 度标识可以为 "0"。 If the FPGA service program has been successfully deleted, the scheduling identifier for the FPGA service program obtained by the operating system may be “Γ, where the scheduling status information obtained by the operating system may include a version identifier, an information type, an information length, Transport ID, target resource type, and schedule ID. S606. If no, the scheduling identifier in the acquired scheduling state information for the FPGA service program may be "0".
若未成功删除所述 FPGA业务程序,则操作系统获取到的所述调度状态信 息中的调度标识可以为 "0"。  If the FPGA service program is not successfully deleted, the scheduling identifier in the scheduling status information acquired by the operating system may be "0".
进一步的,操作系统可以根据所述调度标识,判断所述 FPGA业务程序调 度是否成功, 若调度状态信息中的调度标识是 "Γ , 则表示所述 FPGA业务程 序已成功删除; 若调度状态信息中的调度标识是 "0" , 则表示所述 FPGA业务 程序未成功删除, 可选的, 操作系统可以到达预设时间时再次删除所述 FPGA 业务程序, 并将所述 FPGA业务程序调度到调度緩沖区中。  Further, the operating system may determine, according to the scheduling identifier, whether the scheduling of the FPGA service program is successful. If the scheduling identifier in the scheduling status information is “Γ, the FPGA service program has been successfully deleted; if the scheduling status information is If the scheduling identifier is "0", it indicates that the FPGA service program is not successfully deleted. Optionally, the operating system may delete the FPGA service program again when the preset time is reached, and schedule the FPGA service program to the scheduling buffer. In the district.
在图 6和图 7所示的可重入资源调度方法中, 操作系统根据监控得到的 In the reentrant resource scheduling method shown in FIG. 6 and FIG. 7, the operating system is obtained according to the monitoring.
FPGA中的 FPGA业务程序的运行状态信息,确定所述 FPGA业务程序处于睡 眠状态或未被使用状态,进一步的删除所述确定处于睡眠状态或未被使用状态 的 FPGA 业务程序, 进而获取调度标识, 所述调度标识用于指示所述 FPGA 业务程序是否成功删除,可自动实现根据监控得到的 FPGA业务程序的运行状 态信息,将所述满足调度条件的 FPGA业务程序从 FPGA中删除,提升工作效 率。 本发明实施例还提供了一种计算机存储介质, 其中,所述计算机存储介质 可存储有程序,该程序执行时包括上述图 1至图 7所示的方法实施例中记载的 可重入资源调度方法的部分或全部步骤。 请参见图 8, 图 8为本发明实施例提供的一种可重入资源调度设备的结构 示意图,所述可重入资源调度设备可以用于实施结合图 1至图 7所示的方法实 施例中的可重入资源调度方法的部分或全部步骤,所述可重入资源调度设备至 少可以包括状态监控单元 801、 条件确定单元 802、 资源存储单元 803以及资 源调度单元 804, 其中: The operating state information of the FPGA service program in the FPGA determines that the FPGA service program is in a sleep state or an unused state, and further deletes the FPGA service program that is determined to be in a sleep state or an unused state, thereby acquiring a scheduling identifier, The scheduling identifier is used to indicate whether the FPGA service program is successfully deleted, and the operating state information of the FPGA service program obtained according to the monitoring is automatically implemented, and the FPGA service program that meets the scheduling condition is deleted from the FPGA to improve work efficiency. The embodiment of the present invention further provides a computer storage medium, wherein the computer storage medium can store a program, and the program includes the reentrant resource scheduling described in the foregoing method embodiments shown in FIG. 1 to FIG. Part or all of the steps of the method. Referring to FIG. 8, FIG. 8 is a schematic structural diagram of a re-entrant resource scheduling device according to an embodiment of the present invention. The re-entrant resource scheduling device may be used to implement the method embodiment shown in FIG. 1 to FIG. In some or all of the steps of the re-entrant resource scheduling method, the re-entrant resource scheduling device may include at least a status monitoring unit 801, a condition determining unit 802, a resource storage unit 803, and a resource scheduling unit 804, where:
状态监控单元 801 , 用于监控可重入资源的运行状态信息。  The status monitoring unit 801 is configured to monitor running status information of the reentrant resource.
条件确定单元 802, 用于根据所述状态监控单元 801监控得到的可重入资 源的运行状态信息, 确定所述可重入资源满足调度条件。 资源存储单元 803, 用于将所述条件确定单元 802确定满足调度条件的可 重入资源存储到调度緩沖区中,其中所述存储到所述调度緩沖区中的可重入资 源的格式为经过转换的能被 FPGA识别的格式。 The condition determining unit 802 is configured to determine, according to the running state information of the reentrant resource monitored by the state monitoring unit 801, that the reentrant resource meets the scheduling condition. The resource storage unit 803 is configured to store, by the condition determining unit 802, a reentrant resource that satisfies a scheduling condition, into a scheduling buffer, where the format of the reentrant resource stored in the scheduling buffer is The format of the conversion that can be recognized by the FPGA.
资源调度单元 804, 用于将所述资源存储单元 803存储到所述调度緩沖区 中的所述可重入资源调度到 FPGA中,使所述可重入资源成为 FPGA业务程序。  The resource scheduling unit 804 is configured to schedule the reentrant resource stored in the scheduling buffer by the resource storage unit 803 into the FPGA, so that the reentrant resource becomes an FPGA service program.
作为一种可选的实施方式, 所述可重入资源包括用户程序, 则所述条件确 定单元 802可以如图 9所示, 进一步包括:  As an optional implementation, the re-entrant resource includes a user program, and the condition determining unit 802 may be as shown in FIG.
状态确定模块 901 , 用于根据所述状态监控单元 801监控得到的用户程序 的运行状态信息, 确定所述用户程序处于可运行状态。  The status determining module 901 is configured to determine, according to the running status information of the user program that is monitored by the status monitoring unit 801, that the user program is in an operable state.
条件确定模块 902, 用于当所述状态确定模块 901确定所述用户程序处于 可运行状态时, 则确定所述可重入资源满足调度条件。  The condition determining module 902 is configured to determine, when the state determining module 901 determines that the user program is in an executable state, determine that the reentrant resource satisfies a scheduling condition.
进一步可选的, 所述条件确定模块 902可以如图 10所示, 进一步包括: 内存确定子模块 1001 , 用于当所述状态确定模块 901确定所述用户程序 达预设阈值;  Further, the condition determining module 902 may further include: a memory determining submodule 1001, configured to: when the state determining module 901 determines that the user program reaches a preset threshold;
条件确定子模块 1002, 用于当所述内存确定子模块 1001确定所述处于可 运行状态的用户程序占用的内存使用量到达预设阈值时,则确定所述可重入资 源满足调度条件。  The condition determining sub-module 1002 is configured to determine, when the memory determining sub-module 1001 determines that the memory usage occupied by the user program in the operable state reaches a preset threshold, determining that the re-entrant resource meets the scheduling condition.
作为一种可选的实施方式, 所述可重入资源包括内核驱动程序, 其中: 所述状态确定模块 901 , 还用于根据所述状态监控单元 801监控得到的内 核驱动程序的运行状态信息, 确定所述内核驱动程序处于被使用状态。  As an optional implementation, the re-entrant resource includes a kernel driver, where: the state determining module 901 is further configured to monitor, according to the state monitoring unit 801, the running state information of the obtained kernel driver, It is determined that the kernel driver is in a used state.
所述条件确定模块 902, 还用于当所述状态确定模块 901确定所述内核驱 动程序处于被使用状态时, 则确定所述可重入资源满足调度条件。  The condition determining module 902 is further configured to: when the state determining module 901 determines that the kernel driver is in a used state, determine that the reentrant resource satisfies a scheduling condition.
作为一种可选的实施方式, 所述状态监控单元 801还用于监控所述 FPGA 业务程序的运行状态信息。  As an optional implementation manner, the status monitoring unit 801 is further configured to monitor running status information of the FPGA service program.
所述条件确定单元 802, 还用于根据所述状态监控单元 801监控得到的所 述 FPGA业务程序的运行状态信息,确定所述 FPGA业务程序处于睡眠状态或 未被使用状态。  The condition determining unit 802 is further configured to determine, according to the running state information of the FPGA service program that is monitored by the state monitoring unit 801, that the FPGA service program is in a sleep state or an unused state.
所述可重入资源调度设备还可以包括: 资源删除单元 805, 用于删除所述条件确定单元 802确定处于睡眠状态或 未被使用状态的 FPGA业务程序。 The reentrant resource scheduling device may further include: The resource deleting unit 805 is configured to delete the FPGA service program that the condition determining unit 802 determines to be in a sleep state or an unused state.
作为一种可选的实施方式, 所述状态监控单元 801可以如图 11所示, 进 一步包括:  As an optional implementation manner, the status monitoring unit 801 may be as shown in FIG. 11, and further includes:
状态请求发送模块 1101 , 用于向所述可重入资源发送状态请求信息。 运行状态接收模块 1102, 用于接收所述可重入资源根据所述状态请求发 送模块 1101发送的状态请求信息返回的运行状态信息, 所述运行状态信息包 括处于可运行状态的用户程序占用的内存使用量是否到达预设阈值,或者包括 内核驱动程序是否处于被使用状态。  The status request sending module 1101 is configured to send status request information to the reentrant resource. The operating state receiving module 1102 is configured to receive running state information returned by the re-entrant resource according to the state request information sent by the state request sending module 1101, where the running state information includes a memory occupied by a user program in a runnable state. Whether the usage reaches a preset threshold or whether the kernel driver is in use.
进一步可选的, 所述状态请求发送模块 1101 , 还用于向所述 FPGA业务 程序发送状态请求信息。  Further, the status request sending module 1101 is further configured to send status request information to the FPGA service program.
所述运行状态接收模块 1102, 还用于接收所述 FPGA业务程序根据所述 状态请求发送模块 1101发送的状态请求信息返回的运行状态信息, 所述运行 状态信息包括所述 FPGA业务程序是否处于睡眠状态或未被使用状态。  The operating state receiving module 1102 is further configured to receive the running state information returned by the FPGA service program according to the state request information sent by the state request sending module 1101, where the running state information includes whether the FPGA service program is in sleep. Status or unused status.
进一步可选的, 所述状态请求信息包括指示请求以下信息: 版本标识、 信 息类型、 信息长度、 传输标识以及目标资源类型。  Further optionally, the status request information includes an indication requesting the following information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type.
所述运行状态信息包括版本标识、信息类型、信息长度、传输标识以及目 标资源类型。  The running status information includes a version identifier, an information type, an information length, a transmission identifier, and a target resource type.
作为一种可选的实施方式, 所述资源存储单元 803可以如图 12所示, 进 一步包括:  As an optional implementation manner, the resource storage unit 803 may be as shown in FIG. 12, and further includes:
统计标识获取模块 1201 , 用于当所述条件确定模块 902确定处于可运行 状态的用户程序占用的内存使用量到达预设阈值时获取统计标识,其中所述统 阈值。  The statistical identifier obtaining module 1201 is configured to obtain a statistical identifier when the condition determining module 902 determines that the memory usage occupied by the user program in the operable state reaches a preset threshold, where the threshold is obtained.
资源存储模块 1202, 用于根据所述统计标识获取模块 1201获取到的统计 标识, 将所述满足调度条件的可重入资源存储到所述调度緩沖区中。  The resource storage module 1202 is configured to store, according to the statistical identifier acquired by the statistical identifier obtaining module 1201, the reentrant resource that meets the scheduling condition into the scheduling buffer.
可选的, 所述统计标识获取模块 1201 , 还用于当所述条件确定模块 902 确定所述内核驱动程序处于被使用状态时获取统计标识,其中所述统计标识用 于指示所述内核驱动程序占用的内存使用量到达预设阈值。 所述资源存储模块 1202, 还用于根据所述统计标识获取模块 1201获取到 的统计标识, 将所述满足调度条件的可重入资源存储到所述调度緩沖区中。 Optionally, the statistic identifier obtaining module 1201 is further configured to: when the condition determining module 902 determines that the kernel driver is in a used state, obtain a statistic identifier, where the statistic identifier is used to indicate the kernel driver. The occupied memory usage reaches the preset threshold. The resource storage module 1202 is further configured to store, according to the statistical identifier acquired by the statistical identifier obtaining module 1201, the reentrant resource that meets the scheduling condition into the scheduling buffer.
进一步可选的, 所述统计标识获取模块 1201 , 还用于根据所述可重入资 源的运行状态信息获取统计信息, 所述统计信息包括版本标识、信息类型、信 息长度、 传输标识、 目标资源类型以及统计标识。  Further, the statistic identifier obtaining module 1201 is further configured to obtain the statistic information according to the running status information of the reentrant resource, where the statistic information includes a version identifier, an information type, an information length, a transmission identifier, and a target resource. Type and statistical ID.
作为一种可选的实施方式, 所述资源删除单元 805可以如图 13所示, 进 一步包括:  As an optional implementation manner, the resource deleting unit 805 may be as shown in FIG. 13, and further includes:
统计标识获取模块 1301 , 用于当所述条件确定单元 802确定所述 FPGA 业务程序处于睡眠状态或未被使用状态时获取统计标识,所述统计标识用于指 示所述 FPGA业务程序处于睡眠状态或未被使用状态。  The statistical identifier obtaining module 1301 is configured to: when the condition determining unit 802 determines that the FPGA service program is in a sleep state or an unused state, the statistical identifier is used to indicate that the FPGA service program is in a sleep state or Unused state.
资源删除模块 1302, 用于根据所述统计标识获取模块 1301获取到的统计 标识, 删除所述确定处于睡眠状态或未被使用状态的 FPGA业务程序。  The resource deletion module 1302 is configured to delete, according to the statistical identifier acquired by the statistical identifier obtaining module 1301, the FPGA service program that is determined to be in a sleep state or not in use.
进一步可选的, 所述统计标识获取模块 1301 , 还用于根据所述 FPGA业 务程序的运行状态信息获取统计信息,所述统计信息包括版本标识、信息类型、 信息长度、 传输标识、 目标资源类型以及统计标识。  Further, the statistical identifier obtaining module 1301 is further configured to obtain statistical information according to the running state information of the FPGA service program, where the statistical information includes a version identifier, an information type, an information length, a transmission identifier, and a target resource type. And statistical identification.
作为一种可选的实施方式, 所述资源调度单元 804, 还用于当将所述资源 存储单元存储到所述调度緩沖区中的可重入资源调度到所述 FPGA 中时获取 调度标识,所述调度标识用于指示所述存储到所述调度緩沖区中的可重入资源 已成功调度到所述 FPGA中。  As an optional implementation manner, the resource scheduling unit 804 is further configured to acquire a scheduling identifier when the re-entrant resource stored in the scheduling buffer is scheduled to be sent to the FPGA by using the resource storage unit. The scheduling identifier is configured to indicate that the reentrant resource stored in the scheduling buffer has been successfully scheduled into the FPGA.
进一步可选的, 所述资源调度单元 804, 还用于当所述资源存储单元将存 储到所述调度緩沖区中的可重入资源调度到所述 FPGA 中时获取调度状态信 息, 所述调度状态信息包括版本标识、 信息类型、 信息长度、 传输标识、 目标 资源类型以及调度标识。  Further, the resource scheduling unit 804 is further configured to: when the resource storage unit schedules the reentrant resource stored in the scheduling buffer to the FPGA, acquire scheduling state information, where the scheduling is performed. Status information includes version identification, information type, information length, transmission identification, target resource type, and scheduling identification.
在图 8~图 13所示的可重入资源调度设备中, 条件确定单元 802通过状态 监控单元 801监控得到的可重入资源的运行状态信息,确定所述可重入资源满 足调度条件, 资源存储单元 803将所述可重入资源存储到调度緩沖区中, 资源 调度单元 804将存储到所述调度緩沖区中的所述可重入资源调度到 FPGA中, 使所述可重入资源成为 FPGA业务程序,可自动实现根据监控得到的可重入资 源的运行状态信息,将所述满足调度条件的可重入资源调度到 FPGA中,提升 工作效率。 请参见图 14,图 14为本发明实施例提供的一种可重入资源调度系统的结构 示意图, 用于执行本发明实施例提供的可重入资源调度方法。 如图 14所示, 该 可重入资源调度系统包括: 至少一个处理器 1401 , 例如 CPU, 至少一个 FPGA 1405, 存储器 1404, 调度緩沖区 1403, 至少一个通信总线 1402。 通信总线 1402 用于实现这些组件之间的连接通信。 其中, 存储器 1404可能包含高速 RAM存 储器, 也可能还包括非不稳定的存储器( non-volatile memory ) , 例如至少一 个磁盘存储器。存储器 1404可选的可以包含至少一个位于远离前述处理器 1401 的存储装置。所述调度緩沖区 1403可以位于硬件存储介质例如 EEPROM中,也 可以位于存储器 1404中,存储器 1404中存储一组程序代码,且处理器 1401调用 存储器 1404中存储的程序代码, 用于执行以下操作: In the re-entrant resource scheduling device shown in FIG. 8 to FIG. 13 , the condition determining unit 802 monitors the obtained operating state information of the reentrant resource through the state monitoring unit 801, and determines that the reentrant resource satisfies the scheduling condition, the resource. The storage unit 803 stores the reentrant resource in a scheduling buffer, and the resource scheduling unit 804 schedules the reentrant resource stored in the scheduling buffer into the FPGA, so that the reentrant resource becomes The FPGA service program can automatically implement the running state information of the reentrant resources obtained according to the monitoring, and schedule the reentrant resources satisfying the scheduling condition into the FPGA, and improve Work efficiency. Referring to FIG. 14, FIG. 14 is a schematic structural diagram of a reentrant resource scheduling system according to an embodiment of the present invention, which is used to perform a reentrant resource scheduling method provided by an embodiment of the present invention. As shown in FIG. 14, the reentrant resource scheduling system includes: at least one processor 1401, such as a CPU, at least one FPGA 1405, a memory 1404, a scheduling buffer 1403, and at least one communication bus 1402. Communication bus 1402 is used to implement connection communication between these components. The memory 1404 may include a high speed RAM memory, and may also include a non-volatile memory, such as at least one disk memory. The memory 1404 can optionally include at least one storage device located remotely from the aforementioned processor 1401. The scheduling buffer 1403 may be located in a hardware storage medium such as an EEPROM, or may be located in the memory 1404. The memory 1404 stores a set of program codes, and the processor 1401 calls the program code stored in the memory 1404 to perform the following operations:
监控可重入资源的运行状态信息;  Monitor operational status information of reentrant resources;
根据所述可重入资源的运行状态信息, 确定所述可重入资源满足调度条 件;  Determining, according to the running status information of the reentrant resource, that the reentrant resource meets a scheduling condition;
将所述满足调度条件的可重入资源存储到所述调度緩沖区中,其中所述存 储到所述调度緩沖区中的可重入资源的格式为经过转换的能被所述 FPGA识 别的格式;  Storing the reentrant resource satisfying the scheduling condition into the scheduling buffer, wherein the format of the reentrant resource stored in the scheduling buffer is a converted format that can be recognized by the FPGA ;
将存储到所述调度緩沖区 1403中的所述可重入资源调度到 FPGA1405中, 使所述可重入资源成为 FPGA业务程序。  The reentrant resources stored in the scheduling buffer 1403 are scheduled into the FPGA 1405 to make the reentrant resources an FPGA service program.
在可选实施例中, 所述可重入资源包括用户程序, 处理器 1401调用存储 器 1404中存储的程序代码根据所述可重入资源的运行状态信息, 确定所述可 重入资源满足调度条件具体为:  In an optional embodiment, the reentrant resource includes a user program, and the processor 1401 calls the program code stored in the memory 1404 to determine, according to the running status information of the reentrant resource, that the reentrant resource meets a scheduling condition. Specifically:
根据所述用户程序的运行状态信息, 确定所述用户程序处于可运行状态; 当所述用户程序处于可运行状态时, 则确定所述可重入资源满足调度条 件。  Determining that the user program is in an executable state according to the running status information of the user program; and determining that the reentrant resource satisfies a scheduling condition when the user program is in an operational state.
进一步的,处理器 1401调用存储器 1404中存储的程序代码当所述用户程 序处于可运行状态时, 则确定所述可重入资源满足调度条件具体为:  Further, the processor 1401 calls the program code stored in the memory 1404. When the user program is in an executable state, determining that the reentrant resource meets the scheduling condition is specifically:
当所述用户程序处于可运行状态时,确定所述处于可运行状态的用户程序 占用的内存使用量到达预设阈值。 确定所述可重入资源满足调度条件。 Determining the user program in a runnable state when the user program is in a runnable state The occupied memory usage reaches the preset threshold. Determining that the reentrant resource satisfies a scheduling condition.
在可选实施例中, 所述可重入资源包括内核驱动程序, 处理器 1401调用 存储器 1404中存储的程序代码根据所述可重入资源的运行状态信息, 确定所 述可重入资源满足调度条件具体为:  In an optional embodiment, the reentrant resource includes a kernel driver, and the processor 1401 calls the program code stored in the memory 1404 to determine that the reentrant resource satisfies the schedule according to the running state information of the reentrant resource. The conditions are as follows:
根据所述内核驱动程序的运行状态信息,确定所述内核驱动程序处于被使 用状态;  Determining that the kernel driver is in a used state according to the running state information of the kernel driver;
当所述内核驱动程序处于被使用状态时,则确定所述可重入资源满足调度 条件。  When the kernel driver is in a used state, it is determined that the reentrant resource satisfies a scheduling condition.
在可选的实施例中,处理器 1401还可以调用存储器 1404中存储的程序代 码执行以下步骤:  In an alternative embodiment, the processor 1401 may also invoke the program code stored in the memory 1404 to perform the following steps:
监控所述 FPGA业务程序的运行状态信息;  Monitoring operating state information of the FPGA service program;
根据所述 FPGA业务程序的运行状态信息,确定所述 FPGA业务程序处于 睡眠状态或未被使用状态;  Determining, according to the running state information of the FPGA service program, that the FPGA service program is in a sleep state or an unused state;
删除所述确定处于睡眠状态或未被使用状态的 FPGA业务程序。  The FPGA service program that determines the sleep state or the unused state is deleted.
进而在可选实施例中,处理器 1401调用存储器 1404中存储的程序代码监 控可重入资源的运行状态信息具体为:  In an alternative embodiment, the processor 1401 invokes the program code stored in the memory 1404 to monitor the running status information of the reentrant resource.
向所述可重入资源发送状态请求信息。  Sending status request information to the reentrant resource.
接收所述可重入资源根据所述状态请求信息返回的运行状态信息,所述运 阈值, 或者包括内核驱动程序是否处于被使用状态。  Receiving, by the status information, the operational status information returned by the reentrant resource according to the status request information, the threshold value, or whether the kernel driver is in a used state.
进而在可选实施例中,处理器 1401调用存储器 1404中存储的程序代码监 控可重入资源的运行状态信息具体为:  In an alternative embodiment, the processor 1401 invokes the program code stored in the memory 1404 to monitor the running status information of the reentrant resource.
向所述 FPGA业务程序发送状态请求信息;  Sending status request information to the FPGA service program;
接收所述 FPGA业务程序根据所述状态请求信息返回的运行状态信息,所 述运行状态信息包括所述 FPGA业务程序是否处于睡眠状态或未被使用状态。  Receiving operation state information returned by the FPGA service program according to the status request information, the operation status information including whether the FPGA service program is in a sleep state or an unused state.
其中, 所述状态请求信息包括指示请求以下信息: 版本标识、 信息类型、 信息长度、 传输标识以及目标资源类型; 所述运行状态信息包括版本标识、 信息类型、 信息长度、 传输标识以及目 标资源类型。 The status request information includes an indication requesting the following information: a version identifier, an information type, an information length, a transmission identifier, and a target resource type; The running status information includes a version identifier, an information type, an information length, a transmission identifier, and a target resource type.
进而在可选实施例中,处理器 1401调用存储器 1404中存储的程序代码将 所述满足调度条件的可重入资源存储到所述调度緩沖区 1403中具体为: 取统计标识,其中所述统计标识用于指示所述处于可运行状态的用户程序占用 的内存使用量到达预设阈值;  In an alternative embodiment, the processor 1401 calls the program code stored in the memory 1404 to store the reentrant resource that meets the scheduling condition into the scheduling buffer 1403. Specifically, the statistical identifier is obtained, where the statistics are collected. The identifier is used to indicate that the memory usage occupied by the user program in the operable state reaches a preset threshold;
根据所述统计标识,将所述满足调度条件的可重入资源存储到所述调度緩 沖区 1403中。  And according to the statistical identifier, the reentrant resource that satisfies the scheduling condition is stored in the scheduling buffer 1403.
进而在可选实施例中,处理器 1401调用存储器 1404中存储的程序代码将 所述满足调度条件的可重入资源存储到所述调度緩沖区 1403中具体为: 用于指示所述内核驱动程序占用的内存使用量到达预设阈值;  In an alternative embodiment, the processor 1401 calls the program code stored in the memory 1404 to store the reentrant resource that meets the scheduling condition into the scheduling buffer 1403. Specifically, the processor driver is configured to: The occupied memory usage reaches a preset threshold;
根据所述统计标识,将所述满足调度条件的可重入资源存储到所述调度緩 沖区 1403中。  And according to the statistical identifier, the reentrant resource that satisfies the scheduling condition is stored in the scheduling buffer 1403.
其中,处理器 1401还可以调用存储器 1404中存储的程序代码根据所述可 重入资源的运行状态信息获取统计信息, 所述统计信息包括版本标识、信息类 型、 信息长度、 传输标识、 目标资源类型以及统计标识。  The processor 1401 may also acquire the program information stored in the memory 1404 to obtain statistical information according to the running status information of the reentrant resource, where the statistical information includes a version identifier, an information type, an information length, a transmission identifier, and a target resource type. And statistical identification.
进而在可选实施例中,处理器 1401调用存储器 1404中存储的程序代码删 除所述确定处于睡眠状态或未被使用状态的 FPGA业务程序具体为:  In an alternative embodiment, the processor 1401 invokes the program code stored in the memory 1404 to delete the FPGA service program that is determined to be in a sleep state or not in use.
当所述 FPGA业务程序处于睡眠状态或未被使用状态时获取统计标识,所 述统计标识用于指示所述 FPGA业务程序处于睡眠状态或未被使用状态; 根据所述统计标识, 删除所述确定处于睡眠状态或未被使用状态的 FPGA 业务程序。  Obtaining a statistical identifier when the FPGA service program is in a sleep state or an unused state, where the statistical identifier is used to indicate that the FPGA service program is in a sleep state or an unused state; according to the statistical identifier, deleting the determining An FPGA business program that is in a sleep state or is not in use.
其中, 处理器 1401还可以调用存储器 1404 中存储的程序代码根据所述 The processor 1401 may also call the program code stored in the memory 1404 according to the
FPGA业务程序的运行状态信息获取统计信息, 所述统计信息包括版本标识、 信息类型、 信息长度、 传输标识、 目标资源类型以及统计标识。 The running status information of the FPGA service program acquires statistical information, where the statistical information includes a version identifier, an information type, an information length, a transmission identifier, a target resource type, and a statistical identifier.
在可选的实施例中,处理器 1401调用存储器 1404中存储的程序代码将所 述存储到所述调度緩沖区中的可重入资源调度到所述 FPGA1405中具体为: 当将存储到所述调度緩沖区中的可重入资源调度到所述 FPGA1405 中时 获取调度标识,所述调度标识用于指示所述存储到所述调度緩沖区中的可重入 资源已成功调度到所述 FPGA1405中。 In an alternative embodiment, the processor 1401 calls the program code stored in the memory 1404 to schedule the reentrant resources stored in the scheduling buffer to the FPGA 1405, specifically: Obtaining a scheduling identifier when the reentrant resource stored in the scheduling buffer is scheduled into the FPGA 1405, the scheduling identifier is used to indicate that the reentrant resource stored in the scheduling buffer has succeeded Dispatched into the FPGA 1405.
其中,处理器 1401还可以调用存储器 1404中存储的程序代码当将存储到 所述调度緩沖区 1403中的可重入资源调度到所述 FPGA1405中时获取调度状 态信息, 所述调度状态信息包括版本标识、 信息类型、 信息长度、 传输标识、 目标资源类型以及调度标识。  The processor 1401 may also call the program code stored in the memory 1404 to acquire scheduling state information when the reentrant resource stored in the scheduling buffer 1403 is scheduled into the FPGA 1405, where the scheduling state information includes a version. ID, information type, message length, transport ID, target resource type, and schedule ID.
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM )或随机存储记忆体(Random Access Memory, RAM )等。  A person skilled in the art can understand that all or part of the process of implementing the above embodiment method can be completed by a computer program to instruct related hardware, and the program can be stored in a computer readable storage medium, the program When executed, the flow of an embodiment of the methods as described above may be included. The storage medium may be a magnetic disk, an optical disk, a read-only memory (ROM), or a random access memory (RAM).
需要说明的是, 在上述实施例中, 对各个实施例的描述都各有侧重, 某个 实施例中没有详细描述的部分, 可以参见其他实施例的相关描述。 其次, 本领 域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例, 所涉及 的动作和单元并不一定是本发明所必须的。  It should be noted that, in the foregoing embodiments, the descriptions of the various embodiments are different, and the parts that are not described in detail in an embodiment may refer to related descriptions of other embodiments. In the following, those skilled in the art should also understand that the embodiments described in the specification are all preferred embodiments, and the actions and units involved are not necessarily required by the present invention.
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之 权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。  The above is only the preferred embodiment of the present invention, and the scope of the present invention is not limited thereto, and the equivalent changes made by the claims of the present invention are still within the scope of the present invention.

Claims

权 利 要 求 Rights request
1、 一种可重入资源调度方法, 其特征在于, 所述方法用于可重入资源调 度系统, 所述可重入资源调度系统包括操作系统、调度緩沖区以及现场可编辑 逻辑门阵列 FPGA, 其中所述操作系统用于执行以下步骤: 1. A reentrant resource scheduling method, characterized in that the method is used in a reentrant resource scheduling system, and the reentrant resource scheduling system includes an operating system, a scheduling buffer and a field editable logic gate array FPGA , where the operating system is used to perform the following steps:
监控可重入资源的运行状态信息; Monitor the running status information of reentrant resources;
根据所述可重入资源的运行状态信息, 确定所述可重入资源满足调度条 件; Determine that the reentrant resource satisfies the scheduling condition according to the running status information of the reentrant resource;
将所述满足调度条件的可重入资源存储到所述调度緩沖区中,其中所述存 储到所述调度緩沖区中的可重入资源的格式为经过转换的能被所述 FPGA识 别的格式; Store the reentrant resources that meet the scheduling conditions in the scheduling buffer, wherein the format of the reentrant resources stored in the scheduling buffer is a converted format that can be recognized by the FPGA ;
将所述存储到所述调度緩沖区中的可重入资源调度到所述 FPGA中,使所 述可重入资源成为 FPGA业务程序。 The reentrant resources stored in the scheduling buffer are scheduled to the FPGA, so that the reentrant resources become FPGA business programs.
2、 如权利要求 1所述的方法, 其特征在于, 所述可重入资源包括用户程 序; 2. The method of claim 1, wherein the reentrant resources include user programs;
所述根据所述可重入资源的运行状态信息,确定所述可重入资源满足调度 条件包括: Determining that the reentrant resource satisfies the scheduling condition based on the running status information of the reentrant resource includes:
根据所述用户程序的运行状态信息, 确定所述用户程序处于可运行状态; 当所述用户程序处于可运行状态时, 则确定所述可重入资源满足调度条 件。 According to the running status information of the user program, it is determined that the user program is in a runnable state; when the user program is in a runnable state, it is determined that the reentrant resource satisfies the scheduling condition.
3、 如权利要求 2所述的方法, 其特征在于, 所述当所述用户程序处于可 运行状态时, 确定所述可重入资源满足调度条件包括: 3. The method of claim 2, wherein when the user program is in a runnable state, determining that the reentrant resource satisfies the scheduling condition includes:
当所述用户程序处于可运行状态时,确定所述处于可运行状态的用户程序 占用的内存使用量到达预设阈值; 确定所述可重入资源满足调度条件。 When the user program is in a runnable state, it is determined that the memory usage occupied by the user program in the runnable state reaches a preset threshold; and it is determined that the reentrant resource satisfies the scheduling condition.
4、 如权利要求 1所述的方法, 其特征在于, 所述可重入资源包括内核驱 动程序; 4. The method of claim 1, wherein the reentrant resources include kernel drivers;
所述根据所述可重入资源的运行状态信息,确定所述可重入资源满足调度 条件包括: Determining that the reentrant resource satisfies the scheduling condition based on the running status information of the reentrant resource includes:
根据所述内核驱动程序的运行状态信息,确定所述内核驱动程序处于被使 用状态; Determine that the kernel driver is in use according to the running status information of the kernel driver;
当所述内核驱动程序处于被使用状态时,则确定所述可重入资源满足调度 条件。 When the kernel driver is in a used state, it is determined that the reentrant resource satisfies the scheduling condition.
5、 如权利要求 1所述的方法, 其特征在于, 所述方法还包括: 5. The method of claim 1, wherein the method further includes:
监控所述 FPGA业务程序的运行状态信息; Monitor the running status information of the FPGA business program;
根据所述 FPGA业务程序的运行状态信息,确定所述 FPGA业务程序处于 睡眠状态或未被使用状态; According to the running status information of the FPGA business program, determine that the FPGA business program is in a sleep state or is not in use;
删除所述确定处于睡眠状态或未被使用状态的 FPGA业务程序。 Delete the FPGA business program determined to be in a sleeping state or not in use.
6、 如权利要求 1~4任一项所述的方法, 其特征在于, 所述监控可重入资 源的运行状态信息包括: 6. The method according to any one of claims 1 to 4, characterized in that the monitoring of the operating status information of reentrant resources includes:
向所述可重入资源发送状态请求信息; Send status request information to the reentrant resource;
接收所述可重入资源根据所述状态请求信息返回的运行状态信息,所述运 阈值, 或者包括内核驱动程序是否处于被使用状态。 Receive the running status information returned by the reentrant resource according to the status request information, the operation threshold, or include whether the kernel driver is in a used state.
7、 如权利要求 5所述的方法, 其特征在于, 所述监控所述 FPGA业务程 序的运行状态信息包括: 7. The method of claim 5, wherein the monitoring the running status information of the FPGA business program includes:
向所述 FPGA业务程序发送状态请求信息; Send status request information to the FPGA business program;
接收所述 FPGA业务程序根据所述状态请求信息返回的运行状态信息,所 述运行状态信息包括所述 FPGA业务程序是否处于睡眠状态或未被使用状态。 Receive running status information returned by the FPGA business program according to the status request information, where the running status information includes whether the FPGA business program is in a sleep state or an unused state.
8、 如权利要求 6所述的方法, 其特征在于, 所述状态请求信息包括指示 请求以下信息: 版本标识、信息类型、信息长度、传输标识以及目标资源类型; 所述运行状态信息包括: 8. The method of claim 6, wherein the status request information includes an instruction to request the following information: version identification, information type, information length, transmission identification, and target resource type; the running status information includes:
版本标识、 信息类型、 信息长度、 传输标识以及目标资源类型。 Version ID, message type, message length, transport ID, and target resource type.
9、 如权利要求 3所述的方法, 其特征在于, 所述将所述满足调度条件的 可重入资源存储到所述调度緩沖区中包括: 取统计标识,其中所述统计标识用于指示所述处于可运行状态的用户程序占用 的内存使用量到达预设阈值; 9. The method of claim 3, wherein storing the reentrant resources that satisfy scheduling conditions into the scheduling buffer includes: obtaining a statistical identifier, wherein the statistical identifier is used to indicate The memory usage occupied by the user program in the runnable state reaches the preset threshold;
根据所述统计标识,将所述满足调度条件的可重入资源存储到所述调度緩 沖区中。 According to the statistical identification, the reentrant resources that meet the scheduling conditions are stored in the scheduling buffer.
10、 如权利要求 4所述的方法, 其特征在于, 所述将所述满足调度条件的 可重入资源存储到所述调度緩沖区中包括: 用于指示所述内核驱动程序占用的内存使用量到达预设阈值; 10. The method of claim 4, wherein storing the reentrant resources that satisfy scheduling conditions into the scheduling buffer includes: indicating memory usage occupied by the kernel driver. The amount reaches the preset threshold;
根据所述统计标识,将所述满足调度条件的可重入资源存储到所述调度緩 沖区中。 According to the statistical identification, the reentrant resources that meet the scheduling conditions are stored in the scheduling buffer.
11、 如权利要求 9或 10任一项所述的方法, 其特征在于, 所述获取统计 标识包括: 11. The method according to any one of claims 9 or 10, characterized in that the obtaining statistical identification includes:
根据所述可重入资源的运行状态信息获取统计信息,所述统计信息包括版 本标识、 信息类型、 信息长度、 传输标识、 目标资源类型以及统计标识。 Statistical information is obtained according to the running status information of the reentrant resource, and the statistical information includes a version identifier, information type, information length, transmission identifier, target resource type, and statistical identifier.
12、 如权利要求 5所述的方法, 其特征在于, 所述删除所述确定处于睡眠 状态或未被使用状态的 FPGA业务程序包括: 12. The method of claim 5, wherein deleting the FPGA business program determined to be in a sleep state or an unused state includes:
当所述 FPGA业务程序处于睡眠状态或未被使用状态时获取统计标识,所 述统计标识用于指示所述 FPGA业务程序处于睡眠状态或未被使用状态; 根据所述统计标识, 删除所述确定处于睡眠状态或未被使用状态的 FPGA 业务程序。 Obtain statistical identification when the FPGA business program is in a sleeping state or is not in use, and the statistical identification is used to indicate that the FPGA business program is in a sleeping state or in an unused state; According to the statistical identification, the FPGA service program determined to be in a sleeping state or unused state is deleted.
13、 如权利要求 12所述的方法, 其特征在于, 所述当所述 FPGA业务程 序处于睡眠状态或未被使用状态时获取统计标识包括: 13. The method of claim 12, wherein obtaining the statistical identifier when the FPGA business program is in a sleep state or is not in use includes:
根据所述 FPGA业务程序的运行状态信息获取统计信息,所述统计信息包 括版本标识、 信息类型、 信息长度、 传输标识、 目标资源类型以及统计标识。 Statistical information is obtained according to the running status information of the FPGA business program. The statistical information includes version identification, information type, information length, transmission identification, target resource type and statistical identification.
14、 如权利要求 1所述的方法, 其特征在于, 所述将所述存储到所述调度 緩沖区中的可重入资源调度到所述 FPGA中包括: 14. The method of claim 1, wherein scheduling the reentrant resources stored in the scheduling buffer to the FPGA includes:
当将存储到所述调度緩沖区中的可重入资源调度到所述 FPGA 中时获取 调度标识,所述调度标识用于指示所述存储到所述调度緩沖区中的可重入资源 已成功调度到所述 FPGA中。 The scheduling identifier is obtained when the reentrant resources stored in the scheduling buffer are scheduled to the FPGA, and the scheduling identifier is used to indicate that the reentrant resources stored in the scheduling buffer have been successful. scheduled into the FPGA.
15、 如权利要求 14所述的方法, 其特征在于, 所述当将存储到所述调度 緩沖区中的可重入资源调度到所述 FPGA中时获取调度标识包括: 15. The method of claim 14, wherein obtaining the scheduling identifier when scheduling the reentrant resources stored in the scheduling buffer to the FPGA includes:
当将存储到所述调度緩沖区中的可重入资源调度到所述 FPGA 中时获取 调度状态信息, 所述调度状态信息包括版本标识、 信息类型、 信息长度、 传输 标识、 目标资源类型以及调度标识。 Scheduling status information is obtained when the reentrant resources stored in the scheduling buffer are scheduled to the FPGA. The scheduling status information includes version identification, information type, information length, transmission identification, target resource type and scheduling. logo.
16、一种计算机存储介质,其特征在于,所述计算机存储介质存储有程序, 所述程序执行时包括权利要求 1~15任一项所述的步骤。 16. A computer storage medium, characterized in that the computer storage medium stores a program, and when executed, the program includes the steps described in any one of claims 1 to 15.
17、 一种可重入资源调度设备, 其特征在于, 所述可重入资源调度设备包 括: 17. A reentrant resource scheduling device, characterized in that the reentrant resource scheduling device includes:
状态监控单元, 用于监控可重入资源的运行状态信息; Status monitoring unit, used to monitor the running status information of reentrant resources;
条件确定单元,用于根据所述状态监控单元监控得到的可重入资源的运行 状态信息, 确定所述可重入资源满足调度条件; A condition determination unit, configured to determine that the reentrant resource satisfies the scheduling condition based on the operating status information of the reentrant resource monitored by the status monitoring unit;
资源存储单元,用于将所述条件确定单元确定满足调度条件的可重入资源 存储到调度緩沖区中,其中所述存储到所述调度緩沖区中的可重入资源的格式 为经过转换的能被 FPGA识别的格式; Resource storage unit, used to determine the reentrant resources that meet the scheduling conditions by the condition determination unit. Store in the scheduling buffer, wherein the format of the reentrant resources stored in the scheduling buffer is a converted format that can be recognized by the FPGA;
资源调度单元,用于将所述资源存储单元存储到所述调度緩沖区中的所述 可重入资源调度到所述 FPGA中, 使所述可重入资源成为 FPGA业务程序。 A resource scheduling unit is configured to schedule the reentrant resources stored in the scheduling buffer by the resource storage unit into the FPGA, so that the reentrant resources become FPGA business programs.
18、 如权利要求 17所述的可重入资源调度设备, 其特征在于, 所述可重 入资源包括用户程序; 18. The reentrant resource scheduling device according to claim 17, wherein the reentrant resource includes a user program;
所述条件确定单元包括: The condition determination unit includes:
状态确定模块,用于根据所述状态监控单元监控得到的用户程序的运行状 态信息, 确定所述用户程序处于可运行状态; A status determination module, configured to determine that the user program is in a runnable state based on the running status information of the user program monitored by the status monitoring unit;
条件确定模块,用于当所述状态确定模块确定所述用户程序处于可运行状 态时, 则确定所述可重入资源满足调度条件。 A condition determination module, configured to determine that the reentrant resource satisfies the scheduling condition when the status determination module determines that the user program is in a runnable state.
19、 如权利要求 18所述的可重入资源调度设备, 其特征在于, 所述条件 确定模块包括: 19. The reentrant resource scheduling device according to claim 18, characterized in that the condition determination module includes:
内存确定子模块,用于当所述状态确定模块确定所述用户程序处于可运行 值; Memory determination submodule, used when the status determination module determines that the user program is at a executable value;
条件确定子模块,用于当所述内存确定子模块确定所述处于可运行状态的 用户程序占用的内存使用量到达预设阈值时,则确定所述可重入资源满足调度 条件。 A condition determination submodule, configured to determine that the reentrant resource satisfies the scheduling condition when the memory determination submodule determines that the memory usage occupied by the user program in the runnable state reaches a preset threshold.
20、 如权利要求 17所述的可重入资源调度设备, 其特征在于, 所述可重 入资源包括内核驱动程序; 20. The reentrant resource scheduling device according to claim 17, wherein the reentrant resource includes a kernel driver;
所述状态确定模块,还用于根据所述状态监控单元监控得到的内核驱动程 序的运行状态信息, 确定所述内核驱动程序处于被使用状态; The status determination module is also used to determine that the kernel driver is in a used state based on the running status information of the kernel driver monitored by the status monitoring unit;
所述条件确定模块,还用于当所述状态确定模块确定所述内核驱动程序处 于被使用状态时, 则确定所述可重入资源满足调度条件。 The condition determination module is also configured to determine that the reentrant resource satisfies the scheduling condition when the status determination module determines that the kernel driver is in a used state.
21、 如权利要求 17所述的可重入资源调度设备, 其特征在于, 所述状态 监控单元还用于: 21. The reentrant resource scheduling device according to claim 17, characterized in that the status monitoring unit is also used to:
监控所述 FPGA业务程序的运行状态信息; Monitor the running status information of the FPGA business program;
所述条件确定单元,还用于根据所述状态监控单元监控得到的所述 FPGA 业务程序的运行状态信息,确定所述 FPGA业务程序处于睡眠状态或未被使用 状态; The condition determination unit is also configured to determine that the FPGA business program is in a sleep state or an unused state based on the running status information of the FPGA business program monitored by the status monitoring unit;
所述可重入资源调度设备还包括: The reentrant resource scheduling device also includes:
资源删除单元,用于删除所述条件确定单元确定处于睡眠状态或未被使用 状态的 FPGA业务程序。 A resource deletion unit is used to delete the FPGA business program that the condition determination unit determines is in a sleep state or an unused state.
22、 如权利要求 17~20任一项所述的可重入资源调度设备, 其特征在于, 所述状态监控单元包括: 22. The reentrant resource scheduling device according to any one of claims 17 to 20, characterized in that the status monitoring unit includes:
状态请求发送模块, 用于向所述可重入资源发送状态请求信息; 运行状态接收模块,用于接收所述可重入资源根据所述状态请求发送模块 发送的状态请求信息返回的运行状态信息,所述运行状态信息包括处于可运行 状态的用户程序占用的内存使用量是否到达预设阈值,或者包括内核驱动程序 是否处于被使用状态。 a status request sending module, used to send status request information to the reentrant resource; a running status receiving module, used to receive the running status information returned by the reentrant resource according to the status request information sent by the status request sending module , the running status information includes whether the memory usage occupied by the user program in the runnable state reaches a preset threshold, or includes whether the kernel driver is in use.
23、 如权利要求 21所述的可重入资源调度设备, 其特征在于, 所述状态 请求发送模块还用于: 23. The reentrant resource scheduling device according to claim 21, characterized in that the status request sending module is also used to:
向所述 FPGA业务程序发送状态请求信息; Send status request information to the FPGA business program;
所述运行状态接收模块,还用于接收所述 FPGA业务程序根据所述状态请 求发送模块发送的状态请求信息返回的运行状态信息,所述运行状态信息包括 所述 FPGA业务程序是否处于睡眠状态或未被使用状态。 The running status receiving module is also used to receive the running status information returned by the FPGA business program according to the status request information sent by the status request sending module. The running status information includes whether the FPGA business program is in a sleep state or Not in use.
24、 如权利要求 22所述的可重入资源调度设备, 其特征在于, 所述状态 请求信息包括指示请求以下信息: 版本标识、 信息类型、 信息长度、 传输标识 以及目标资源类型; 24. The reentrant resource scheduling device according to claim 22, wherein the status request information includes an instruction to request the following information: version identification, information type, information length, transmission identification and target resource type;
所述运行状态信息包括: 版本标识、 信息类型、 信息长度、 传输标识以及目标资源类型。 The running status information includes: Version ID, message type, message length, transport ID, and target resource type.
25、 如权利要求 19所述的可重入资源调度设备, 其特征在于, 所述资源 存储单元包括: 25. The reentrant resource scheduling device according to claim 19, wherein the resource storage unit includes:
统计标识获取模块,用于当所述条件确定模块确定处于可运行状态的用户 程序占用的内存使用量到达预设阈值时获取统计标识,其中所述统计标识用于 资源存储模块, 用于根据所述统计标识获取模块获取到的统计标识,将所 述满足调度条件的可重入资源存储到所述调度緩沖区中。 A statistical identification acquisition module, configured to obtain a statistical identification when the condition determination module determines that the memory usage occupied by the user program in a runnable state reaches a preset threshold, wherein the statistical identification is used in the resource storage module, and is used to obtain the statistical identification according to the The statistical identification obtained by the statistical identification acquisition module stores the reentrant resources that meet the scheduling conditions in the scheduling buffer.
26、 如权利要求 20所述的可重入资源调度设备, 其特征在于, 所述统计 标识获取模块还用于: 标识,其中所述统计标识用于指示所述内核驱动程序占用的内存使用量到达预 设阈值; 26. The reentrant resource scheduling device according to claim 20, wherein the statistical identification acquisition module is further used to: identify, wherein the statistical identification is used to indicate the memory usage occupied by the kernel driver. reaches the preset threshold;
所述资源存储模块, 还用于根据所述统计标识获取模块获取到的统计标 识, 将所述满足调度条件的可重入资源存储到所述调度緩沖区中。 The resource storage module is also configured to store the reentrant resources that meet the scheduling conditions into the scheduling buffer according to the statistical identification obtained by the statistical identification obtaining module.
27、如权利要求 25或 26任一项所述的可重入资源调度设备,其特征在于, 所述统计标识获取模块还用于: 27. The reentrant resource scheduling device according to any one of claims 25 or 26, characterized in that, the statistical identification acquisition module is also used to:
根据所述可重入资源的运行状态信息获取统计信息,所述统计信息包括版 本标识、 信息类型、 信息长度、 传输标识、 目标资源类型以及统计标识。 Statistical information is obtained according to the running status information of the reentrant resource, and the statistical information includes a version identifier, information type, information length, transmission identifier, target resource type, and statistical identifier.
28、 如权利要求 21所述的方法, 其特征在于, 所述资源删除单元包括: 统计标识获取模块,用于当所述条件确定单元确定所述 FPGA业务程序处 于睡眠状态或未被使用状态时获取统计标识, 所述统计标识用于指示所述 FPGA业务程序处于睡眠状态或未被使用状态; 28. The method of claim 21, wherein the resource deletion unit includes: a statistical identification acquisition module, used when the condition determination unit determines that the FPGA business program is in a sleep state or is not in use. Obtain a statistical identifier, which is used to indicate that the FPGA business program is in a sleep state or is not in use;
资源删除模块, 用于根据所述统计标识获取模块获取到的统计标识,删除 所述确定处于睡眠状态或未被使用状态的 FPGA业务程序。 A resource deletion module, configured to delete the FPGA business program determined to be in a sleep state or unused state according to the statistical identifier obtained by the statistical identifier acquisition module.
29、 如权利要求 28所述的方法, 其特征在于, 所述统计标识获取模块还 用于: 29. The method according to claim 28, characterized in that the statistical identification acquisition module is also used to:
根据所述 FPGA业务程序的运行状态信息获取统计信息,所述统计信息包 括版本标识、 信息类型、 信息长度、 传输标识、 目标资源类型以及统计标识。 Statistical information is obtained according to the running status information of the FPGA business program. The statistical information includes version identification, information type, information length, transmission identification, target resource type and statistical identification.
30、 如权利要求 17所述的可重入资源调度设备, 其特征在于, 所述资源 调度单元还用于: 30. The reentrant resource scheduling device according to claim 17, characterized in that the resource scheduling unit is also used to:
当将所述资源存储单元存储到所述调度緩沖区中的可重入资源调度到所 述 FPGA中时获取调度标识,所述调度标识用于指示所述存储到所述调度緩沖 区中的可重入资源已成功调度到所述 FPGA中。 The scheduling identifier is obtained when the reentrant resources stored in the scheduling buffer by the resource storage unit are scheduled to the FPGA. The scheduling identifier is used to indicate the reentrant resources stored in the scheduling buffer. Reentrant resources have been successfully scheduled into the FPGA.
31、 如权利要求 30所述的可重入资源调度设备, 其特征在于, 所述资源 调度单元还用于: 31. The reentrant resource scheduling device according to claim 30, characterized in that the resource scheduling unit is also used to:
当所述资源存储单元将存储到所述调度緩沖区中的可重入资源调度到所 述 FPGA中时获取调度状态信息,所述调度状态信息包括版本标识、信息类型、 信息长度、 传输标识、 目标资源类型以及调度标识。 Scheduling status information is obtained when the resource storage unit schedules the reentrant resources stored in the scheduling buffer into the FPGA. The scheduling status information includes version identification, information type, information length, transmission identification, Target resource type and scheduling ID.
32、 一种可重入资源调度系统, 其特征在于, 所述可重入资源调度系统包 括 FPGA、 存储器、 调度緩沖区以及处理器, 其中, 所述存储器中存储一组程 序代码,且所述处理器用于调用存储器中存储的程序代码,用于执行以下操作: 监控可重入资源的运行状态信息; 32. A reentrant resource scheduling system, characterized in that the reentrant resource scheduling system includes an FPGA, a memory, a scheduling buffer and a processor, wherein a set of program codes is stored in the memory, and the The processor is used to call the program code stored in the memory to perform the following operations: monitor the running status information of the reentrant resources;
根据所述可重入资源的运行状态信息, 确定所述可重入资源满足调度条 件; Determine that the reentrant resource satisfies the scheduling condition according to the running status information of the reentrant resource;
将所述满足调度条件的可重入资源存储到所述调度緩沖区中,其中所述存 储到所述调度緩沖区中的可重入资源的格式为经过转换的能被所述 FPGA识 别的格式; Store the reentrant resources that meet the scheduling conditions in the scheduling buffer, wherein the format of the reentrant resources stored in the scheduling buffer is a converted format that can be recognized by the FPGA ;
将所述存储到所述调度緩沖区中的可重入资源调度到所述 FPGA中,使所 述可重入资源成为 FPGA业务程序。 The reentrant resources stored in the scheduling buffer are scheduled to the FPGA, so that the reentrant resources become FPGA business programs.
PCT/CN2014/071681 2014-01-28 2014-01-28 Reentrant resource scheduling method, device and system WO2015113211A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201480000429.9A CN104956328B (en) 2014-01-28 2014-01-28 One kind can reentry resource regulating method, equipment and system
PCT/CN2014/071681 WO2015113211A1 (en) 2014-01-28 2014-01-28 Reentrant resource scheduling method, device and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/071681 WO2015113211A1 (en) 2014-01-28 2014-01-28 Reentrant resource scheduling method, device and system

Publications (1)

Publication Number Publication Date
WO2015113211A1 true WO2015113211A1 (en) 2015-08-06

Family

ID=53756106

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/071681 WO2015113211A1 (en) 2014-01-28 2014-01-28 Reentrant resource scheduling method, device and system

Country Status (2)

Country Link
CN (1) CN104956328B (en)
WO (1) WO2015113211A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107544819B (en) * 2016-06-29 2022-04-19 中兴通讯股份有限公司 Service implementation method and device for programmable device and communication terminal
CN112506087A (en) * 2019-09-16 2021-03-16 阿里巴巴集团控股有限公司 FPGA acceleration system and method, electronic device, and computer-readable storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104601A1 (en) * 2006-10-26 2008-05-01 Nokia Corporation Scheduler for multiple software tasks to share reconfigurable hardware
CN101441569A (en) * 2008-11-24 2009-05-27 中国人民解放军信息工程大学 Novel service flow-oriented compiling method based on heterogeneous reconfigurable architecture
CN101727423A (en) * 2008-10-17 2010-06-09 东北大学 System capable of preempting multiple hardware tasks on reconfigurable FPGA and implementing method thereof
CN101944049A (en) * 2010-09-16 2011-01-12 四川大学 Unified dispatching algorithm of reconfigurable system software/ hardware task based on placement cost
US20120151502A1 (en) * 2010-12-14 2012-06-14 University Of Southern California Apparatus and method for dynamically reconfiguring state of application program in a many-core system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101655828B (en) * 2008-08-18 2011-09-07 中国人民解放军信息工程大学 Design method for high efficiency super computing system based on task data flow drive
CN102508712B (en) * 2011-09-29 2014-01-15 中国科学技术大学苏州研究院 Middleware system of heterogeneous multi-core reconfigurable hybrid system and task execution method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104601A1 (en) * 2006-10-26 2008-05-01 Nokia Corporation Scheduler for multiple software tasks to share reconfigurable hardware
CN101727423A (en) * 2008-10-17 2010-06-09 东北大学 System capable of preempting multiple hardware tasks on reconfigurable FPGA and implementing method thereof
CN101441569A (en) * 2008-11-24 2009-05-27 中国人民解放军信息工程大学 Novel service flow-oriented compiling method based on heterogeneous reconfigurable architecture
CN101944049A (en) * 2010-09-16 2011-01-12 四川大学 Unified dispatching algorithm of reconfigurable system software/ hardware task based on placement cost
US20120151502A1 (en) * 2010-12-14 2012-06-14 University Of Southern California Apparatus and method for dynamically reconfiguring state of application program in a many-core system

Also Published As

Publication number Publication date
CN104956328A (en) 2015-09-30
CN104956328B (en) 2018-12-14

Similar Documents

Publication Publication Date Title
US11283724B2 (en) Broadcast message management method and apparatus
US8849992B2 (en) System and method for scheduling device management
US20210294658A1 (en) Systems and methods for automatically scaling compute resources based on demand
US8788663B1 (en) Managing resource dependent workflows
US8656002B1 (en) Managing resource dependent workflows
US8776051B2 (en) Method of providing partially isolated execution environment for multiple applications and digital information apparatus using the same
KR101780052B1 (en) Method for switching the operating system in information processing system
CN111949364A (en) Deployment method of containerized VNF and related equipment
US8738775B1 (en) Managing resource dependent workflows
US9603086B2 (en) Smart management of background network connections based on historical data
WO2017156676A1 (en) Processing method and device for application, and smart terminal
WO2015113211A1 (en) Reentrant resource scheduling method, device and system
CN109818977B (en) Access server communication optimization method, access server and communication system
CN106843890B (en) Sensor network, node and operation method thereof based on intelligent decision
US20230393782A1 (en) Io request pipeline processing device, method and system, and storage medium
TW200813819A (en) Computer micro-jobs
JP2008225641A (en) Computer system, interrupt control method and program
TWI472910B (en) System resource conserving method and operating system thereof
KR101984150B1 (en) Control method and control device
WO2024037482A1 (en) Interrupt message processing method and apparatus
US9152460B1 (en) Management of computing devices processing workflow stages of a resource dependent workflow
US9128761B1 (en) Management of computing devices processing workflow stages of resource dependent workflow
US11366673B1 (en) Managing transitioning of computing system to power-on state from standby-power state
KR101802056B1 (en) Apparatus and method for managing base station
KR20170101748A (en) An Electronic apparatus and Method for booting the electronic apparatus thereof

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: 14880909

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14880909

Country of ref document: EP

Kind code of ref document: A1