Screening method, apparatus, device, storage medium

By using interrupt control and parallel processing of buffer registers, the problem of speed and accuracy in screening in computer technology was solved, and efficient particle screening in molecular dynamics simulation was achieved.

CN120540716BActive Publication Date: 2026-03-03SHANGHAI SMARTLOGIC TECHNOLOGY LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510572542.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-04-30
Publication Date
2026-03-03
Estimated Expiration
2045-04-30

AI Technical Summary

Technical Problem

How to quickly and accurately complete the screening work based on target conditions in computer technology, especially in molecular dynamics simulations, to screen for particles that meet the conditions.

Method used

The filtering objects are read by interrupt control, the reference objects are read by multiple buffer registers and grouped, and the target conditions are judged by multiple filtering units until all reference objects and each filtering object are judged. The filtering is carried out by grouping and parallel processing.

Benefits of technology

It enables fast and accurate screening, improving screening efficiency and accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120540716B_ABST
    Figure CN120540716B_ABST
Patent Text Reader

Abstract

This application provides a screening method, apparatus, device, and storage medium. The method includes: reading screening objects based on interrupt control; reading reference objects separately through multiple buffer registers; selecting one buffer register and grouping the reference objects read from the selected buffer register; performing target condition judgments between each group of reference objects and each screening object through multiple screening units; re-executing the step of selecting one buffer register and subsequent steps until all reference objects have been judged against each screening object to obtain a screening result. This method, after reading screening objects based on interrupt control and reading reference objects separately through buffer registers, groups the reference objects; and performs target condition judgments between each group of reference objects and each screening object through multiple screening units to obtain a screening result. Because the target condition judgments are processed in parallel in groups, the screening work can be completed quickly and accurately.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a screening method, apparatus, device, and storage medium. Background Technology

[0002] With the development of computer technology, the demand for screening based on target conditions using computer technology has increased dramatically.

[0003] For example, in molecular dynamics simulations, computer technology is used to screen particles that meet the condition that the distance between a particle (reference particle) and its surrounding particles is no greater than a threshold.

[0004] like Figure 1 As shown, in the area to be screened (i.e. Figure 1 In the block to be screened, computer technology is used to calculate the distance between the particle to be screened and the reference particle, and to determine whether the distance is within the Rcut range (i.e., the target condition is that the distance between the particle to be screened and the reference particle is not greater than Rcut). If the particle's parameters include four items (x, y, z, q), where x, y, and z represent the particle's three-dimensional position and q represents the information carried by the particle, then it is necessary to screen particles whose distances satisfy the target condition (i.e., the target condition δx). 2 +δy 2 +δz 2 <Rcut 2 The particles are selected and the selected particles are output (e.g., the selected x, y, z, q data are stored in the storage unit).

[0005] How to complete the screening process quickly and accurately is a problem that urgently needs to be solved. Summary of the Invention

[0006] To address one of the aforementioned technical deficiencies, this application provides a screening method, apparatus, device, and storage medium.

[0007] A first aspect of this application provides a screening method, the method comprising:

[0008] Read the filtered objects based on interrupt control;

[0009] The reference object is read separately using multiple buffer registers;

[0010] Select a buffer register and group the baseline objects read from the selected buffer memory; use multiple filtering units to determine the target conditions between each group of baseline objects and each filtered object.

[0011] Re-execute the step of selecting a buffer register and subsequent steps until all baseline objects have been compared with each filter object to determine the target conditions and obtain the filter results.

[0012] Optionally, the reference object is read separately through multiple buffer registers, including:

[0013] Upon first execution of the method, or upon obtaining a baseline object read trigger and determining that there is a baseline object that has not been read by the buffer register, determine whether a target buffer register exists among all buffer registers;

[0014] If a target buffer register exists, then a first number of reference objects are read from the storage location of the reference objects through a target buffer register;

[0015] If the number of reference objects not read by the buffer register is less than the preset first unit read count, the first count is the number of reference objects not read by the buffer register; otherwise, the first count is the first unit read count.

[0016] Optionally, among all buffer registers, determine whether a target buffer register exists, including:

[0017] Determine if any of the buffer registers are empty;

[0018] If an empty buffer register exists, then the target buffer register is determined to exist, and the empty buffer register is determined to be the target buffer register;

[0019] If no empty buffer register exists, then determine whether a buffer register for completed processing exists; wherein, the base object in the buffer register for completed processing is compared with the target condition of each filter object;

[0020] If a buffer register that has completed processing exists, then the target buffer register is determined to exist and is identified as the target buffer register.

[0021] Optionally, the reference objects read from the selected buffer memory are grouped, including:

[0022] If the total number of target benchmark objects The target baseline object is then divided into Groups, each group containing one baseline object; where n G The number of filter units is the target reference object, which is the reference object read from the selected buffer memory;

[0023] like Then determine the remainder If RE = 0, then the target baseline object is divided into n equal parts. G Group; if RE≠0, then select from the target reference object. Given a base object, divide it into n equal parts. GIn the group, the RE group is randomly selected from all groups, and an ungrouped target baseline object is added to each group.

[0024] Optionally, the target condition judgment between each group of baseline objects and each filtered object is performed through multiple filtering units, including:

[0025] From all the filter units, determine the processing filter units; wherein the number of processing filter units is the same as the number of groups;

[0026] Each processing filtering unit reads a set of baseline objects; the sets read by each processing filtering unit are different.

[0027] For each processing and filtering unit, it is controlled to sequentially select a second number of filtering objects, perform target condition judgment between the benchmark object and the selected filtering objects, and write the judgment result into the corresponding storage unit; wherein, the storage units corresponding to each processing and filtering unit are independent of each other.

[0028] Optionally, the filtered objects are read based on interrupt control, including:

[0029] Based on interrupt control, the filtered objects are written to the FIFO memory of the filtered objects through the write pointer of the FIFO memory of the filtered objects; wherein, the FIFO memory of the filtered objects includes one write pointer and multiple read pointers.

[0030] For each processing filtering unit, control it to sequentially select a second number of filtering objects, including:

[0031] For each processing filtering unit, it is controlled to read a second number of filtering objects from the FIFO memory of the filtering objects through different read pointers.

[0032] Optionally, if the number of processing filtering units is less than the number of read pointers in the FIFO memory of the filtering object, the number of processing filtering units and read pointers can be obtained by merging the pointers.

[0033] A second aspect of this application provides a screening device, the device comprising:

[0034] The first reading module is used to read filtered objects based on interrupt control;

[0035] The second read module is used to read the reference object through multiple buffer registers respectively;

[0036] The filtering module is used to select a buffer register, group the reference objects read from the selected buffer memory, and perform target condition judgment between each group of reference objects and each filtered object through multiple filtering units. The step of selecting a buffer register and subsequent steps are re-executed until all reference objects have been judged against each filtered object to obtain the filtering results.

[0037] A third aspect of this application provides an electronic device, comprising:

[0038] Memory;

[0039] Processor; and

[0040] Computer programs;

[0041] The computer program is stored in the memory and configured to be executed by the processor to implement the method described in the first aspect above.

[0042] In a fourth aspect, this application provides a computer-readable storage medium having a computer program stored thereon; the computer program is executed by a processor to implement the method described in the first aspect above.

[0043] This application provides a screening method, apparatus, device, and storage medium. The method includes: reading screening objects based on interrupt control; reading reference objects separately through multiple buffer registers; selecting one buffer register and grouping the reference objects read from the selected buffer memory; performing target condition judgments between each group of reference objects and each screening object through multiple screening units; re-executing the step of selecting one buffer register and subsequent steps until all reference objects have been judged against each screening object to obtain a screening result. The method provided by this application reads screening objects based on interrupt control and reads reference objects separately through buffer registers, then groups the reference objects read from the buffer memory; performing target condition judgments between each group of reference objects and each screening object through multiple screening units to obtain a screening result. Because the target condition judgments are processed in parallel in groups, the screening work can be completed quickly and accurately. Attached Figure Description

[0044] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:

[0045] Figure 1 This is a schematic diagram of a particle screening technique in the prior art;

[0046] Figure 2 This is a schematic diagram of a screening method provided in an embodiment of this application;

[0047] Figure 3 This is a schematic diagram of the structure of a screening device provided in an embodiment of this application;

[0048] Figure 4 This is a schematic diagram of the structure of a screening device provided in this application embodiment in a practical application;

[0049] Figure 5 A schematic diagram of the structure of another screening device provided in the embodiments of this application in a practical application;

[0050] Figure 6 This is a schematic diagram of the structure of another screening device provided in the embodiments of this application in a practical application.

[0051] Figure 7 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0052] To make the technical solutions and advantages of the embodiments of this application clearer, the exemplary embodiments of this application will be described in further detail below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not an exhaustive list of all embodiments. It should be noted that, unless otherwise specified, the embodiments and features in the embodiments of this application can be combined with each other.

[0053] In developing this application, the inventors discovered that with the development of computer technology, the demand for screening based on target conditions using computer technology has increased dramatically. How to complete the screening process quickly and accurately is a problem that urgently needs to be solved.

[0054] To address the aforementioned problems, this application provides a screening method, apparatus, device, and storage medium. The method includes: reading screening objects based on interrupt control; reading reference objects separately through multiple buffer registers; selecting one buffer register and grouping the reference objects read from the selected buffer memory; performing target condition judgments between each group of reference objects and each screening object through multiple screening units; re-executing the step of selecting one buffer register and subsequent steps until all reference objects have undergone target condition judgments with each screening object, thereby obtaining a screening result. The method provided in this application reads screening objects based on interrupt control and reads reference objects separately through buffer registers, then groups the reference objects read from the buffer memory; performing target condition judgments between each group of reference objects and each screening object through multiple screening units to obtain a screening result. Because the target condition judgments are processed in parallel groups, the screening work can be completed quickly and accurately.

[0055] See Figure 2This embodiment provides a screening method, the implementation process of which is as follows:

[0056] 201, Read the filtered object based on interrupt control.

[0057] This step can be implemented based on interrupt control, by writing the filtered object into the FIFO (First Input First Output) memory of the filtered object through the write pointer of the FIFO memory of the filtered object.

[0058] The FIFO memory for filtering objects includes one write pointer and multiple read pointers.

[0059] For example, it receives interrupt control and parses the storage location and block number of the filter object contained in the interrupt control, then reads the filter object from that storage location. After reading, it writes the filter object into the filter object's FIFO memory through the write pointer of the filter object's FIFO memory.

[0060] 202, the reference object is read separately through multiple buffer registers.

[0061] The implementation process of step 202 is as follows:

[0062] 202-1, the filtering method provided in this embodiment is executed for the first time, or, after obtaining the benchmark object reading trigger and determining that there is a benchmark object that has not been read by the buffer register, the target buffer register is determined to exist in all buffer registers.

[0063] The first execution of the filtering method provided in this embodiment will execute 202-1 in order to read the reference object through the buffer register.

[0064] The baseline object read trigger is generated based on the processing of the filtering unit in step 203. If the number of filtered objects that a filtering unit has completed in step 203 reaches a certain percentage threshold, it indicates that the filtering unit's task of judging the target conditions between the current baseline object and each filtered object is about to be completed. At this time, a baseline object read trigger is generated to read new baseline objects and then perform target condition judgments between the new baseline objects and each filtered object. Based on the baseline object read trigger, the reading progress of baseline objects can be flexibly controlled, reading an appropriate number of baseline objects at an appropriate time, because the acquisition of baseline objects requires a certain amount of acquisition time and storage space.

[0065] Therefore, flexibly controlling the reading progress of the benchmark object avoids the time and space consumption caused by obtaining the benchmark object too early, and also avoids the impact of obtaining the benchmark object too late on the execution of the filtering task.

[0066] Alternatively, the process of determining the existence of reference objects that have not been read by the buffer register can be as follows: read the configuration information of the reference object, determine the total number of reference objects, the number of the first unit read, etc. based on the configuration information and the number of reference objects already obtained, and then determine whether there are reference objects that have not been read by the buffer register, and the number of reference objects that have not been read by the buffer register, etc.

[0067] If a baseline object read trigger is detected, and it is determined that there are baseline objects that have not been read by the buffer register, it indicates that there is a filtering unit that is about to complete processing, and the filtering task is not yet finished. In this case, the acquisition of baseline objects will continue, and the filtering of newly acquired baseline objects will be performed. Therefore, if a baseline object read trigger is detected, and it is determined that there are baseline objects that have not been read by the buffer register, the existence of the target buffer register will be checked among all buffer registers.

[0068] The process of determining the target buffer register is as follows:

[0069] If an empty buffer register exists, then the target buffer register is determined to exist, and the empty buffer register is determined to be the target buffer register.

[0070] If no empty buffer register exists, then determine if a buffer register that has completed processing exists. If a buffer register that has completed processing exists, then determine if a target buffer register exists, and designate that buffer register as the target buffer register.

[0071] In this process, the baseline object in the cache register that has been processed is compared with the target condition of each filter object.

[0072] In other words, an empty buffer register is preferentially selected as the target buffer register. If no empty buffer register exists, the buffer register in which all base objects have completed target condition judgment (i.e., all target objects in the buffer register have been processed) is selected as the target buffer register. Therefore, the target buffer register is either an empty buffer register or a buffer register in which all target data has been filtered.

[0073] 202-2, If a target buffer register exists, then a first number of reference objects are read from the storage location of the reference objects through a target buffer register.

[0074] If the number of reference objects not read by the buffer register is less than the preset first unit read count, the first count is the number of reference objects not read by the buffer register; otherwise, the first count is the first unit read count.

[0075] If there is only one target buffer register, a first number of reference objects are read from the storage location of the reference objects through it. If there are multiple target buffer registers, one is selected randomly, or according to certain selection criteria (such as selecting the target buffer register that has not been selected for the longest time), and a first number of reference objects are read from the storage location of the reference objects through it.

[0076] If the number of reference objects not read by the buffer register is less than the minimum selection number (i.e., the first unit read number), then all reference objects not read by the buffer register are read. If the number of reference objects not read by the buffer register is not less than the minimum selection number (i.e., the first unit read number), then the minimum selection number (i.e., the first unit read number) of reference objects not read by the buffer register are read.

[0077] Taking a scenario where there are two buffer registers (e.g., buffer register 0 and buffer register 1), the first unit read quantity is 24, and the number of reference objects not read by the buffer registers exceeds 24, when a reference object in one buffer register (e.g., buffer register 0) is used for target condition judgment in the filtered unit, the other buffer register (buffer register 1) is designated as the target buffer register. 24 reference objects are read from the storage location of the reference objects through buffer register 1, at which point buffer register 1 will store the 24 reference objects just read.

[0078] The above-described scheme of reading the reference object through the target buffer register can effectively improve the efficiency of reference object reading. Since reading the reference object from its storage location requires multiple cycles, during reference object reading, while the reference object in the buffer register is undergoing target condition judgment, the reference object is read through a buffer register that does not currently have a reference object undergoing target condition judgment. This way, when all reference objects in the current buffer register have completed target condition judgment, other buffer registers have already completed reading new reference objects. At this point, the target condition judgment of reference objects in other buffer registers can be processed immediately, achieving timely switching between multiple buffer registers.

[0079] Taking two buffer registers (such as buffer register 0 and buffer register 1) as an example, during the target condition judgment of the reference object in buffer register 0, buffer register 1 will read the reference object from the storage location of the reference object. When the target condition judgment of the reference object in buffer register 0 is completed, it can immediately switch to the reference object already prepared in buffer register 1 for target condition judgment. At this time, buffer register 0 can read the reference object again. Using two buffer registers to perform data prefetching and immediate switching of reference objects can avoid hardware idle waiting.

[0080] 203. Select a buffer register and group the reference objects read from the selected buffer memory. Perform target condition judgments between each group of reference objects and each filtered object using multiple filtering units.

[0081] When the filtering method provided in this embodiment is executed for the first time, step 203 is executed to begin target condition judgment on new reference objects. When the filtering method provided in this embodiment is not executed for the first time, step 203 is executed after all reference objects in a buffer register have had their target conditions judged by the filtering unit, so that target condition judgment can be performed on new reference objects. Additionally, the number of buffer registers processed simultaneously can be preset. If the total number of buffer registers currently being processed by the filtering unit is less than the number of buffer registers being processed simultaneously, step 203 is executed to perform target condition judgment on reference objects in multiple buffer registers simultaneously.

[0082] When selecting a buffer register, a number of reference objects are read from the first unit that have already been stored, and the buffer register selection is performed when none of the stored reference objects have been selected by the filtering unit to complete the target condition judgment.

[0083] Once a buffer register is selected, it is grouped to allow for parallel processing of all reference objects within that buffer register, thus improving processing speed.

[0084] The grouping process is as follows:

[0085] If the total number of target benchmark objects The target baseline object is then divided into Groups, each group containing one baseline object. Where n G The number of filtering units is the target reference object, which is the reference object read from the selected buffer memory. In other words, if the number of reference objects in the buffer register is less than the number of filtering units, i.e., it cannot be guaranteed that each filtering unit processes one reference object, then each reference object is divided into a group; that is, the number of groups is equal to the number of reference objects.

[0086] like Then determine the remainder If RE = 0, it means that the number of benchmark objects is a multiple of the number of filtering units. In this case, the target benchmark objects are divided into n equal parts. G Group (e.g.) n G =6, then the target benchmark objects are divided into 6 groups, with 4 benchmark objects in each group. If RE≠0, it means that the number of benchmark objects is not a multiple of the number of filtering units, so select from the target benchmark objects. Given a base object, divide it into n equal parts. GIn the group, the RE group is randomly selected from all groups, and each group is supplemented with an ungrouped target baseline object (e.g., n G =6, then randomly select 24 target reference objects and divide them into 6 groups, with 4 reference objects in each group. Then randomly add the remaining 2 reference objects into 2 groups. This still results in 6 groups, but the number of reference objects in each group is not the same. There are 2 groups with 5 reference objects and 4 groups with 4 reference objects.

[0087] After grouping, multiple filtering units will simultaneously process the base objects of each group. That is, multiple filtering units will determine the target conditions between the base objects of each group and each filtered object. The specific implementation process is as follows:

[0088] 1. From all the filter cells, determine the filter cells to process.

[0089] The number of processing and filtering units is the same as the number of groups.

[0090] Based on the above explanation of the grouping process, the final number of groups is equal to or less than the number of filter units.

[0091] If the final number of groups equals the number of filter units, then all filter units will be designated as filter units for processing.

[0092] If the final number of groups is less than the number of filter units, then the number of filter units will be selected from the filter units to process the filter units. For example, if there is one group and two filter units, then one of the filter units will be selected as the processing filter unit.

[0093] If the final number of groups is less than the number of filter units, a filter unit selection scheme can be used to select the filter units. For example, if the filter unit selection scheme is to randomly select a number of filter units that have not been processed (i.e., randomly select a number of filter units that are not working), then the filter units that have not been processed will be selected first, and then a number of filter units will be randomly selected from the selected filter units as the filter units to be processed (e.g., if the number of groups is 1 and there are 3 filter units, namely filter unit 1, filter unit 2 and filter unit 3, where filter unit 1 is currently performing the filtering process, and filter units 2 and 3 have not performed any filtering process, then one of filter units 2 and 3 will be randomly selected as the filter unit to be processed). For example, if the selection scheme for the filtering unit is to select the group of filtering units that have not been selected for the longest time (i.e., randomly select the filtering unit that has been inactive for the longest time), then the filtering units that have not yet been processed will be selected first. Then the duration of inactivity of the selected filtering units will be determined. Finally, the group of filtering units with the longest duration will be selected as the processing filtering units (e.g., if the number of groups is 1 and there are 3 filtering units, namely filtering unit 1, filtering unit 2, and filtering unit 3, where filtering unit 1 is currently performing filtering processing, and filtering units 2 and 3 have not performed any filtering processing, then the duration of inactivity of filtering unit 2 and the duration of inactivity of filtering unit 3 will be determined, and the filtering unit with the longest duration will be selected as the processing filtering unit).

[0094] The filtering process described in this embodiment is the process of "judging the target conditions between the benchmark object and the selected filtering object, and writing the judgment result into the corresponding storage unit".

[0095] This step ensures that the number of processing and filtering units and groups is the same.

[0096] 2. Read a set of baseline objects through each processing and filtering unit.

[0097] The groups read by each processing and filtering unit are different.

[0098] Since the number of processing filtering units and groups is the same, each processing filtering unit can read a set of benchmark objects and then process the filtering of that set of benchmark objects. Multiple processing filtering units can process the filtering work simultaneously, realizing the parallel execution of the filtering work, effectively shortening the execution time of the filtering method provided in this embodiment, and enabling the filtering work to be completed quickly and accurately.

[0099] For example, if the data is divided into 6 groups, with 4 baseline objects in each group, and there are 6 processing and filtering units, then processing and filtering unit 1 reads the baseline objects from group 1 and processes them. Processing and filtering unit 2 reads the baseline objects from group 2 and processes them. Processing and filtering unit 3 reads the baseline objects from group 3 and processes them. Processing and filtering unit 4 reads the baseline objects from group 4 and processes them. Processing and filtering unit 5 reads the baseline objects from group 5 and processes them. Processing and filtering unit 6 reads the baseline objects from group 6 and processes them. All 6 processing and filtering units process the data simultaneously, achieving parallel execution of the filtering process.

[0100] 3. For each processing and filtering unit, control it to select a second number of filtering objects in sequence, perform target condition judgment between the benchmark object and the selected filtering object, and write the judgment result into the corresponding storage unit.

[0101] The storage units corresponding to each processing and filtering unit are independent of each other.

[0102] Taking a second quantity of 8 as an example, if the filtering unit 1 processes the filtering of the reference objects in group 1, it will first select 8 filtering objects, perform target condition judgment between the currently selected 8 filtering objects and 4 reference objects, and store the judgment result in the corresponding storage unit. After these 8 filtering objects are processed, the filtering unit 1 will select another 8 filtering objects, perform target condition judgment between the currently selected 8 filtering objects and 4 reference objects, and store the judgment result in the corresponding storage unit. This process continues, controlling the filtering unit 1 to select 8 filtering objects each time, perform target condition judgment between the reference objects and the selected filtering objects, and write the judgment result in the corresponding storage unit, until all filtering objects have been selected by the filtering unit 1, completing the target condition judgment.

[0103] The following points need to be explained in this process:

[0104] 1) Each processing filtering unit will select filtering objects multiple times in units of the second quantity until all filtering objects are selected, and complete the target condition judgment between the base object of the group and all filtering objects.

[0105] In other words, the baseline object involved in the entire filtering process of each processing and filtering unit remains unchanged; what changes is the filtering object. Furthermore, the baseline objects differ between processing and filtering units, but the filtering objects are the same: all filtering objects.

[0106] 2) To reduce the amount of data in the judgment results, and consequently the amount of data to write, thus reducing the time spent writing data, results that meet the target conditions can be selected and written to the corresponding storage units. For example, if the target condition is to select filter objects whose distance from the benchmark object is less than a certain value, then the judgment results will store information about filter objects whose distance from the benchmark object is less than a certain value, and this information will be written to the corresponding storage units. This will significantly reduce the amount of data in the judgment results, thereby reducing the time spent writing the judgment results to the corresponding storage units.

[0107] 3) In order to reduce the time consumption caused by writing data, after any processing and filtering unit obtains the judgment result, it may not write it into the corresponding storage unit. Instead, it may cache the judgment result first, and then write it into the corresponding storage unit after the judgment results are collected to a certain number (such as the collected judgment results reaching 512 bits).

[0108] 4) To prevent insufficient storage unit bandwidth from causing blockage when writing judgment results to the corresponding storage unit, and / or excessive write channel congestion due to a large number of judgment results, which would generate a stall signal and pause the current processing and filtering unit's work, multiple storage sub-units can be added outside the main storage unit. Since the storage units corresponding to each processing and filtering unit are independent, the storage sub-units are also independent, meaning there is no shared storage unit / sub-unit. Each storage sub-unit has its own address space, and each judgment result is segmented and stored in different storage sub-units. This allows a processing and filtering unit to write the final judgment result to two address spaces. During the write process, the write data channels of the two address spaces are independent and the write process is synchronized. After writing, the data written from multiple storage sub-units is merged, and the merged data is written to the corresponding storage unit.

[0109] For example, the result of the selection is information about a filter object whose distance from the reference object is less than a certain value. This information includes (x, y, z, q), where x, y, and z represent the three-dimensional position of the filter object, and q represents the information carried by the filter object. If there are two storage sub-units, storage sub-unit 1 and storage sub-unit 2, then (x, y, z, q) can be divided into two segments, (x, y) and (z, q). (x, y) is written into storage sub-unit 1, and (z, q) is written into storage sub-unit 2. After writing, the (x, y) written in storage sub-unit 1 and the (z, q) written in storage sub-unit 2 are merged, and the merged (x, y, z, q) is written into the corresponding storage unit.

[0110] 5) The filtering object is read based on interrupt control. After reading, the filtering object is written to the FIFO memory of the filtering object through the write pointer. The FIFO memory of the filtering object includes one write pointer and multiple read pointers. By using multiple read pointers, multiple processing filtering units can select from the second number of filtering objects, which can avoid read conflicts caused by multiple processing filtering units selecting filtering objects with a single read pointer.

[0111] In other words, for each processing and filtering unit, during the process of sequentially selecting a second number of filtering objects, each processing and filtering unit reads the second number of filtering objects from the FIFO memory of the filtering objects through different read pointers. In this way, multiple processing and filtering units can simultaneously read filtering objects through different read pointers, ensuring the efficiency of reading filtering objects and thus completing the filtering work quickly and accurately.

[0112] In this way, whenever a processing and filtering unit finishes judging the target condition between the baseline object and the currently selected filtering object and writes the judgment result to the corresponding storage unit, it will proactively select a second number of filtering objects for the next processing through a read pointer. This allows each processing and filtering unit to execute independently, avoiding the situation where a blocking of one processing and filtering unit affects the execution of other processing and filtering units.

[0113] Taking two processing filtering units as an example, since the processing situations of the two processing filtering units are different, the write situations to the storage units will also be different. In order to avoid the write stall of one processing filtering unit affecting the filtering processing work of the other processing filtering unit, the implementation of the two filtering processing work is relatively independent, which can improve performance.

[0114] Furthermore, by using multiple read pointers in the FIFO memory for filtering objects, each processing filtering unit can correspond to a single read pointer. For example, processing filtering unit 0 corresponds to read pointer 0, and processing filtering unit 1 corresponds to read pointer 1. Each processing filtering unit reads the filtered objects only through its corresponding read pointer. If processing filtering unit 1 processes faster, it can continuously read the filtered objects through read pointer 1, while the read pointer 0 of processing filtering unit 0 still points to the original data. The reading speed of processing filtering unit 0 for the filtered objects will not affect the reading accuracy of processing filtering unit 1.

[0115] This faster processing allows the filter unit to select the filter object multiple times.

[0116] In addition, to avoid the situation where the number of processing filter units is less than the number of read pointers, there will be read pointers that do not correspond to the processing filter units. Read pointers that do not correspond to the processing filter units will cause the FIFO memory of the filter object to be blocked because they do not jump. In this case, if the number of processing filter units is less than the number of read pointers in the FIFO memory of the filter object, the number of read pointers to be processed is obtained by merging the pointers.

[0117] If the number of processing and filtering units is 2, and the number of read pointers in the FIFO memory of the filtering objects is 4, then 3 read pointers can be randomly selected and merged into 1 read pointer, resulting in 2 read pointers, each corresponding to one processing and filtering unit. Alternatively, 2 read pointers can be randomly selected and merged to obtain 1 read pointer, and then the remaining 2 read pointers can be merged to obtain 1 read pointer, thus obtaining 2 read pointers, each corresponding to one processing and filtering unit. Other methods can be chosen to obtain the number of processing and filtering units by merging pointers; this embodiment and subsequent embodiments do not limit this, as long as the number of merged pointers is the same as the number of processing and filtering units.

[0118] 6) To ensure the synchronization of the baseline object and the filter object, control can be achieved through coordination.

[0119] Once a processing and filtering unit completes the target condition judgment between all the reference objects in the corresponding group and the selected filtering object, and writes the judgment result to the corresponding storage unit, it will issue a work stop signal, which indicates that the processing unit has not performed any processing (i.e., it is not working).

[0120] Once all processing and filtering units have completed the target condition judgment between all reference objects in the corresponding group and the selected filtering object, and written the judgment result into the corresponding storage unit, that is, all processing and filtering units have issued a work stop signal, then all reference objects read by the currently selected buffer register in step 203 have completed the target condition judgment work.

[0121] In practice, the number of processing and filtering units that issue work stop signals can be monitored. If the number of processing and filtering units that issue work stop signals reaches a certain proportion of the total number of all processing and filtering units, a baseline object reading trigger is generated. This trigger is the one obtained in step 202-1. This ensures continuous filtering and allows for fast and accurate completion of the filtering process.

[0122] 204. Re-execute the step of selecting a buffer register and subsequent steps until all baseline objects have been compared with each filter object to determine the target conditions and obtain the filter results.

[0123] After executing step 203, all benchmark objects read from the buffer register selected in step 203 have completed the target condition judgment. If there are still benchmark objects that have not undergone target condition judgment, a buffer register will be selected again for subsequent filtering processing. That is, in step 204, if there are benchmark objects that have not undergone target condition judgment, step 203 will be executed again. If all benchmark objects have undergone target condition judgment with each filtering object, then all judgment results constitute the filtering results, and the filtering process is completed.

[0124] In addition, when summarizing all the judgment results, the results can also be sorted, for example, sorting the filtered objects based on the average distance from the benchmark object.

[0125] In other words, the filtering method provided in this embodiment can group the reference objects (e.g., 24 reference objects) in a buffer register at one time (e.g., divided into 6 groups, with 4 reference objects in each group), and then read a unique group of reference objects through multiple processing filtering units (e.g., 6 processing filtering units). Then, control each processing filtering unit to select multiple filtering objects (e.g., 8 filtering objects) in sequence, perform target condition judgment between the reference objects and the selected filtering objects, and write the judgment result into the corresponding storage unit.

[0126] During the target condition judgment process between the reference object in the buffer register and all the filtered objects, when the proportion of the reference objects that have completed the judgment to the total number of reference objects in the buffer register reaches a certain percentage, a reference object reading trigger is generated. At this time, other buffer registers will read new reference objects (such as reading 24 more reference objects).

[0127] Once all the reference objects in the buffer register have completed the target condition judgment between themselves and all the filter objects, a new reference object will be selected to perform target condition judgment between another 24 reference objects and all the filter objects.

[0128] By repeating this process, the reference particles can be continuously screened, and the screening work can be completed quickly and accurately.

[0129] It should be noted that the reference object mentioned in this embodiment varies depending on the application scenario. For example, in molecular dynamics simulations, the reference object can be a reference particle, while in clustering scenarios, the reference object can be a cluster center vector. Similarly, the filtering object mentioned in this embodiment varies depending on the application scenario. For example, in molecular dynamics simulations, the reference object can be a filtering particle, while in clustering scenarios, the reference object can be a vector to be classified. Finally, the target condition mentioned in this embodiment varies depending on the application scenario. For example, in molecular dynamics simulations, the target condition can be selecting filtering particles that are within a certain distance from the reference object.

[0130] This embodiment provides a filtering method based on interrupt control for reading filtering objects; reading reference objects separately through multiple buffer registers; selecting one buffer register to group the reference objects read from the selected buffer memory; performing target condition judgments between each group of reference objects and each filtering object through multiple filtering units; re-executing the step of selecting one buffer register and subsequent steps until all reference objects have been judged against each filtering object to obtain the filtering result. The method provided in this embodiment, after reading filtering objects based on interrupt control and reading reference objects separately through buffer registers, groups the reference objects read from the buffer memory; and performs target condition judgments between each group of reference objects and each filtering object through multiple filtering units to obtain the filtering result. Because the target condition judgment is processed in parallel in groups, the filtering work can be completed quickly and accurately.

[0131] Based on the same inventive concept as the screening method, this embodiment provides a screening device, see [link to relevant documentation]. Figure 3 The device includes:

[0132] The first reading module 301 is used to read the filtered objects based on interrupt control.

[0133] The second reading module 302 is used to read the reference object through multiple buffer registers respectively.

[0134] The filtering module 303 is used to select a buffer register and group the reference objects read from the selected buffer memory. Multiple filtering units are used to determine the target conditions between each group of reference objects and each filtered object. The step of selecting a buffer register and subsequent steps are repeated until all reference objects have been compared with each filtered object to obtain the filtering results.

[0135] The second reading module 302 is used for

[0136] Upon first execution of the method, or upon obtaining a baseline object read trigger and determining that a baseline object has not been read by the buffer register, determine whether a target buffer register exists among all buffer registers.

[0137] If a target buffer register exists, then a first number of reference objects are read from the storage location of the reference objects through a target buffer register.

[0138] If the number of reference objects not read by the buffer register is less than the preset first unit read count, the first count is the number of reference objects not read by the buffer register; otherwise, the first count is the first unit read count.

[0139] Among all buffer registers, determining whether a target buffer register exists includes:

[0140] Determine if any of the buffer registers are empty.

[0141] If an empty buffer register exists, then the target buffer register is determined to exist, and the empty buffer register is determined to be the target buffer register.

[0142] If no empty buffer register exists, then it is determined whether a completed processing buffer register exists. The base object in the completed processing buffer register is used to perform target condition checks against each filter object.

[0143] If a buffer register that has completed processing exists, then the target buffer register is determined to exist and is identified as the target buffer register.

[0144] The selected buffer memory will be used to read the reference object group, which includes:

[0145] If the total number of target benchmark objects The target baseline object is then divided into Groups, each group containing one baseline object. Where n G The number of filter units is specified, and the target reference object is the reference object read from the selected buffer memory.

[0146] like Then determine the remainder If RE = 0, then the target baseline object is divided into n equal parts. G Group. If RE≠0, then select from the target reference objects. Given a base object, divide it into n equal parts. G In the group, the RE group is randomly selected from all groups, and an ungrouped target baseline object is added to each group.

[0147] This includes determining the target conditions between each group of baseline objects and each filtered object through multiple filtering units, including:

[0148] From all the filter units, determine the processing filter units. The number of processing filter units is the same as the number of groups.

[0149] Each processing filtering unit reads a set of baseline objects. The sets read by each processing filtering unit are different.

[0150] For each processing and filtering unit, it sequentially selects a second number of filtering objects, performs target condition judgment between the baseline object and the selected filtering objects, and writes the judgment result into the corresponding storage unit. The storage units corresponding to each processing and filtering unit are independent of each other.

[0151] Among them, the method of reading and filtering objects based on interrupt control includes:

[0152] Based on interrupt control, the filtered objects are written to the FIFO memory of the filtered objects through the write pointer of the FIFO memory of the filtered objects. The FIFO memory of the filtered objects includes one write pointer and multiple read pointers.

[0153] For each processing filtering unit, control it to sequentially select a second number of filtering objects, including:

[0154] For each processing filtering unit, it is controlled to read a second number of filtering objects from the FIFO memory of the filtering objects through different read pointers.

[0155] If the number of processing filtering units is less than the number of read pointers in the FIFO memory of the filtering object, then the number of processing filtering units and read pointers is obtained by merging the pointers.

[0156] In addition, in specific implementation, such as Figure 4 As shown, the first reading module 301 can be implemented through a FIFO memory for filtering objects, a reading unit for filtering objects, and an interrupt parsing unit.

[0157] The second reading module 302 can be implemented through a reference object configuration unit and a reference object reading unit.

[0158] The filtering module 303 is implemented through multiple filtering units and a reference object reading unit.

[0159] See Figure 4 The filtering module configuration unit is connected to the reading unit of the filtering object and the reading unit of the benchmark object, respectively.

[0160] The reference object configuration unit is connected to the reference object reading unit.

[0161] The interrupt parsing unit is connected to the reading unit of the filtered object.

[0162] The reading unit for the filtered object is connected to the FIFO memory of the filtered object.

[0163] The reference object reading unit and the filter object FIFO memory are respectively connected to each filter unit.

[0164] 1. Filtering Module Configuration Unit

[0165] The filtering module configuration unit is used to store the configuration information of the filtering module.

[0166] For example, a filter module configuration unit, used to store the configuration of the filter unit's register file, etc.

[0167] 2. Baseline Object Configuration Unit

[0168] The baseline object configuration unit is used to store the configuration information of the baseline object.

[0169] For example, a reference object configuration unit is used to store the address information and quantity information of reference objects.

[0170] 3. FIFO memory for filtering objects

[0171] A FIFO memory for filtering objects, used to store the filtered objects that are read.

[0172] The FIFO memory for filtering objects includes one write pointer and multiple read pointers.

[0173] A FIFO memory for filtering objects, used to write filtered objects into the FIFO memory via a write pointer.

[0174] 4. Reading unit for filtered objects

[0175] The filter object reading unit is used to read the filter object based on its address information.

[0176] For specific implementation details, please refer to [link / reference]. Figure 5 The reading unit of the filtered object can be connected to the storage unit of the filtered object.

[0177] The storage unit for the filtered objects is located outside the filtering module provided in this embodiment.

[0178] For specific implementation details, please refer to [link / reference]. Figure 6 The reading units for the filtered objects and the reading units for the baseline objects are kept synchronized through coordination and scheduling.

[0179] 5. Reference object reading unit

[0180] The benchmark object reading unit is used to read the benchmark object based on the configuration information of the filtering module and the configuration information of the benchmark object.

[0181] For specific implementation details, please refer to [link / reference]. Figure 5 The reference object reading unit can be connected to the reference object's storage unit. The reference object reading unit can read the reference object from the reference object's storage unit through this connection.

[0182] The benchmark object reading unit is used to read the benchmark object based on the configuration information of the filtering module and the configuration information of the benchmark object after the benchmark object reading is triggered.

[0183] For specific implementation details, please refer to [link / reference]. Figure 6 The reading of the benchmark object can be triggered by the object processing module in the sieve based on the storage information of the judgment result storage unit.

[0184] The storage unit for the reference object, the storage unit for the judgment result, and the processing module for the filtered object are all located outside the filtering module provided in this embodiment.

[0185] The storage unit of the reference object and the storage unit of the filter object can be the same storage unit, but the reference object and the filter object are stored in different locations in the storage unit. Alternatively, the storage unit of the reference object and the storage unit of the filter object can be different storage units.

[0186] The object processing module for screening can be a single module, which can obtain the processing progress of each screening unit. It can also be multiple modules, such as... Figure 6 In this system, the number of screening object processing modules is the same as the number of screening units, and there is a one-to-one correspondence between screening object processing modules and screening units. The screening object processing module can obtain the processing progress of its corresponding screening unit and thus generate a baseline object reading trigger, which will be obtained by the baseline object reading unit.

[0187] When the filtering module provided in this embodiment performs filtering processing, the reference object reading unit is used to determine whether there are any reference objects that have not been read by the buffer register after the reference object reading is triggered, based on the configuration information of the filtering module and the configuration information of the reference object. If it is determined that there are reference objects that have not been read by the buffer register, then it is determined whether there is a target buffer register among multiple buffer registers. If there is a target buffer register, then a first number of reference objects are read through a target buffer register.

[0188] If the number of reference objects not read by the buffer register is less than the preset first unit read count, the first count is the number of reference objects not read by the buffer register; otherwise, the first count is the first unit read count.

[0189] Additionally, the reference object reading unit is used to determine whether an empty buffer register exists among all buffer registers. If an empty buffer register exists, a target buffer register is determined to exist, and this empty buffer register is designated as the target buffer register. If no empty buffer register exists, it is determined whether a completed processing buffer register exists. The reference object in the completed processing buffer register is compared with each filter object to determine the target condition. If a completed processing buffer register exists, a target buffer register is determined to exist, and this completed processing buffer register is designated as the target buffer register.

[0190] The reference object reading unit is used to group the reference objects read from the target buffer register. Each group of reference objects is then input into a different processing unit.

[0191] 6. Interruption parsing unit

[0192] The interrupt parsing unit is used to receive interrupt control and parse the storage location of the filter object contained in the interrupt control.

[0193] For example, the interrupt parsing unit is used to receive interrupt control and parse the Block address, Block number, etc. of the filtered object contained in the interrupt control.

[0194] 7. Multiple filtering units

[0195] The filtering units are independent.

[0196] The filtering unit is used to determine the target conditions between the baseline object and each filtering object to obtain the filtering results.

[0197] For specific implementation details, please refer to [link / reference]. Figure 5 The filtering unit is connected to the judgment result storage unit, and the judgment result of the filtering unit is stored in the connected judgment result storage unit. Each judgment result storage unit is independent.

[0198] The judgment result storage unit and the object processing module are both located outside the filtering module provided in this embodiment.

[0199] The filtering unit is used to sequentially read a second number of filtered objects from the FIFO memory of the filtered objects using a read pointer. Each filtering unit has a different read pointer.

[0200] It should be noted that the filtering unit and the processing filtering unit in this embodiment are actually two names for the same unit, not two different filtering units. They are just different names at different stages. The filtering unit for which the basic object is assigned is the processing filtering unit.

[0201] The device provided in this embodiment reads the filtering objects based on interrupt control and reads the reference objects through the buffer register respectively, and then groups the reference objects read from the buffer memory; it performs target condition judgment between each group of reference objects and each filtering object through multiple filtering units to obtain the filtering results. Since the target condition judgment is processed in parallel in groups, the filtering work can be completed quickly and accurately.

[0202] Based on the same inventive concept as the screening method, this embodiment provides an electronic device, which is as follows: Figure 7 As shown, it includes: a memory 701, a processor 702, and a computer program.

[0203] The computer program is stored in memory 701 and configured to be executed by processor 702 to implement the above-described screening method.

[0204] Specifically,

[0205] Read the filtered objects based on interrupt control.

[0206] The reference object is read separately using multiple buffer registers.

[0207] Select a buffer register and group the baseline objects read from the selected buffer memory. Perform target condition judgments between each group of baseline objects and each filtered object using multiple filtering units.

[0208] Re-execute the step of selecting a buffer register and subsequent steps until all baseline objects have been compared with each filter object to determine the target conditions and obtain the filter results.

[0209] Optionally, the reference object is read separately through multiple buffer registers, including:

[0210] Upon first execution of the method, or upon obtaining a baseline object read trigger and determining that a baseline object has not been read by the buffer register, determine whether a target buffer register exists among all buffer registers.

[0211] If a target buffer register exists, then a first number of reference objects are read from the storage location of the reference objects through a target buffer register.

[0212] If the number of reference objects not read by the buffer register is less than the preset first unit read count, the first count is the number of reference objects not read by the buffer register; otherwise, the first count is the first unit read count.

[0213] Optionally, among all buffer registers, determine whether a target buffer register exists, including:

[0214] Determine if any of the buffer registers are empty.

[0215] If an empty buffer register exists, then the target buffer register is determined to exist, and the empty buffer register is determined to be the target buffer register.

[0216] If no empty buffer register exists, then it is determined whether a completed processing buffer register exists. The base object in the completed processing buffer register is used to perform target condition checks against each filter object.

[0217] If a buffer register that has completed processing exists, then the target buffer register is determined to exist and is identified as the target buffer register.

[0218] Optionally, the reference objects read from the selected buffer memory are grouped, including:

[0219] If the total number of target benchmark objects The target baseline object is then divided into Groups, each group containing one baseline object. Where n G The number of filter units is specified, and the target reference object is the reference object read from the selected buffer memory.

[0220] like Then determine the remainder If RE = 0, then the target baseline object is divided into n equal parts. G Group. If RE≠0, then select from the target reference objects. Given a base object, divide it into n equal parts. G In the group, the RE group is randomly selected from all groups, and an ungrouped target baseline object is added to each group.

[0221] Optionally, the target condition judgment between each group of baseline objects and each filtered object is performed through multiple filtering units, including:

[0222] From all the filter units, determine the processing filter units. The number of processing filter units is the same as the number of groups.

[0223] Each processing filtering unit reads a set of baseline objects. The sets read by each processing filtering unit are different.

[0224] For each processing and filtering unit, it sequentially selects a second number of filtering objects, performs target condition judgment between the baseline object and the selected filtering objects, and writes the judgment result into the corresponding storage unit. The storage units corresponding to each processing and filtering unit are independent of each other.

[0225] Optionally, the filtered objects are read based on interrupt control, including:

[0226] Based on interrupt control, the filtered objects are written to the FIFO memory of the filtered objects through the write pointer of the FIFO memory of the filtered objects. The FIFO memory of the filtered objects includes one write pointer and multiple read pointers.

[0227] For each processing filtering unit, control it to sequentially select a second number of filtering objects, including:

[0228] For each processing filtering unit, it is controlled to read a second number of filtering objects from the FIFO memory of the filtering objects through different read pointers.

[0229] Optionally, if the number of processing filtering units is less than the number of read pointers in the FIFO memory of the filtering object, the number of processing filtering units and read pointers can be obtained by merging the pointers.

[0230] The electronic device provided in this embodiment has a computer program executed by a processor to read the filter objects based on interrupt control and read the reference objects through the buffer registers respectively. The reference objects read from the buffer memory are grouped. The target conditions between each group of reference objects and each filter object are judged by multiple filtering units to obtain the filtering results. Since the target condition judgment is processed in parallel in groups, the filtering work can be completed quickly and accurately.

[0231] Based on the same inventive concept as the screening method, this embodiment provides a computer-readable storage medium on which a computer program is stored. The computer program is executed by a processor to implement the above-described screening method.

[0232] Specifically,

[0233] Read the filtered objects based on interrupt control.

[0234] The reference object is read separately using multiple buffer registers.

[0235] Select a buffer register and group the baseline objects read from the selected buffer memory. Perform target condition judgments between each group of baseline objects and each filtered object using multiple filtering units.

[0236] Re-execute the step of selecting a buffer register and subsequent steps until all baseline objects have been compared with each filter object to determine the target conditions and obtain the filter results.

[0237] Optionally, the reference object is read separately through multiple buffer registers, including:

[0238] Upon first execution of the method, or upon obtaining a baseline object read trigger and determining that a baseline object has not been read by the buffer register, determine whether a target buffer register exists among all buffer registers.

[0239] If a target buffer register exists, then a first number of reference objects are read from the storage location of the reference objects through a target buffer register.

[0240] If the number of reference objects not read by the buffer register is less than the preset first unit read count, the first count is the number of reference objects not read by the buffer register; otherwise, the first count is the first unit read count.

[0241] Optionally, among all buffer registers, determine whether a target buffer register exists, including:

[0242] Determine if any of the buffer registers are empty.

[0243] If an empty buffer register exists, then the target buffer register is determined to exist, and the empty buffer register is determined to be the target buffer register.

[0244] If no empty buffer register exists, then it is determined whether a completed processing buffer register exists. The base object in the completed processing buffer register is used to perform target condition checks against each filter object.

[0245] If a buffer register that has completed processing exists, then the target buffer register is determined to exist and is identified as the target buffer register.

[0246] Optionally, the reference objects read from the selected buffer memory are grouped, including:

[0247] If the total number of target benchmark objects The target baseline object is then divided into Groups, each group containing one baseline object. Where n G The number of filter units is specified, and the target reference object is the reference object read from the selected buffer memory.

[0248] like Then determine the remainder If RE = 0, then the target baseline object is divided into n equal parts. G Group. If RE≠0, then select from the target reference objects. Given a base object, divide it into n equal parts. G In the group, the RE group is randomly selected from all groups, and an ungrouped target baseline object is added to each group.

[0249] Optionally, the target condition judgment between each group of baseline objects and each filtered object is performed through multiple filtering units, including:

[0250] From all the filter units, determine the processing filter units. The number of processing filter units is the same as the number of groups.

[0251] Each processing filtering unit reads a set of baseline objects. The sets read by each processing filtering unit are different.

[0252] For each processing and filtering unit, it sequentially selects a second number of filtering objects, performs target condition judgment between the baseline object and the selected filtering objects, and writes the judgment result into the corresponding storage unit. The storage units corresponding to each processing and filtering unit are independent of each other.

[0253] Optionally, the filtered objects are read based on interrupt control, including:

[0254] Based on interrupt control, the filtered objects are written to the FIFO memory of the filtered objects through the write pointer of the FIFO memory of the filtered objects. The FIFO memory of the filtered objects includes one write pointer and multiple read pointers.

[0255] For each processing filtering unit, control it to sequentially select a second number of filtering objects, including:

[0256] For each processing filtering unit, it is controlled to read a second number of filtering objects from the FIFO memory of the filtering objects through different read pointers.

[0257] Optionally, if the number of processing filtering units is less than the number of read pointers in the FIFO memory of the filtering object, the number of processing filtering units and read pointers can be obtained by merging the pointers.

[0258] The computer-readable storage medium provided in this embodiment has a computer program executed by a processor to read filter objects based on interrupt control and read reference objects through buffer registers respectively. The reference objects read from the buffer memory are then grouped. The target conditions between each group of reference objects and each filter object are judged by multiple filtering units to obtain the filtering results. Since the target condition judgment is processed in parallel in groups, the filtering work can be completed quickly and accurately.

[0259] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code. The solutions in the embodiments of this application can be implemented in various computer languages, such as the object-oriented programming language Java and the interpreted scripting language JavaScript.

[0260] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1A device that provides the functions specified in one or more boxes.

[0261] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0262] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0263] Although preferred embodiments of this application have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of this application.

[0264] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the spirit and scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.

Claims

1. A screening method, characterized in that, The method includes: Read the filtered objects based on interrupt control; The reference object is read separately using multiple buffer registers; Select a buffer register, and group the reference objects read from the selected buffer memory; including: If the total number of target benchmark objects Then the target reference object is divided into Groups, each group containing one base object; where, The number of filter units is the target reference object, which is the reference object read from the selected buffer memory; like Then determine the remainder. ;like Then the target baseline object is divided into equal parts. Group; if Then select from the target reference object. Each baseline object is divided into... Groups, randomly selected from all groups. Each group is supplemented with an ungrouped target baseline object; The target conditions between each group of baseline objects and each filtered object are determined through multiple filtering units. Re-execute the step of selecting a buffer register and subsequent steps until all baseline objects have been compared with each filter object to determine the target conditions and obtain the filter results.

2. The method according to claim 1, characterized in that, The process of reading the reference object through multiple buffer registers includes: Upon first execution of the method, or upon obtaining a baseline object read trigger and determining that there is a baseline object that has not been read by the buffer register, determine whether a target buffer register exists among all buffer registers; If a target buffer register exists, then a first number of reference objects are read from the storage location of the reference objects through a target buffer register; If the number of reference objects not read by the buffer register is less than the preset first unit read count, the first count is the number of reference objects not read by the buffer register; otherwise, the first count is the first unit read count.

3. The method according to claim 2, characterized in that, Determining whether a target buffer register exists among all buffer registers includes: Determine if any of the buffer registers are empty; If an empty buffer register exists, then the target buffer register is determined to exist, and the empty buffer register is determined to be the target buffer register; If no empty buffer register exists, then determine whether a buffer register for completed processing exists; wherein, the base object in the buffer register for completed processing is compared with the target condition of each filter object; If a buffer register that has completed processing exists, then the target buffer register is determined to exist and is identified as the target buffer register.

4. The method according to claim 1, characterized in that, The step of determining the target conditions between each group of baseline objects and each filtered object through multiple filtering units includes: From all the filtering units, processing filtering units are determined; wherein the number of processing filtering units is the same as the number of groups; Each processing filtering unit reads a set of baseline objects; the sets read by each processing filtering unit are different. For each processing and filtering unit, it is controlled to sequentially select a second number of filtering objects, perform target condition judgment between the benchmark object and the selected filtering objects, and write the judgment result into the corresponding storage unit; wherein, the storage units corresponding to each processing and filtering unit are independent of each other.

5. The method according to claim 4, characterized in that, The interrupt-controlled reading and filtering of objects includes: Based on interrupt control, the filtered objects are written to the FIFO memory of the filtered objects through the write pointer of the FIFO memory of the filtered objects; wherein, the FIFO memory of the filtered objects includes one write pointer and multiple read pointers. The step of controlling each processing filtering unit to sequentially select a second number of filtering objects includes: For each processing filtering unit, it is controlled to read a second number of filtering objects from the FIFO memory of the filtering objects through different read pointers.

6. The method according to claim 5, characterized in that, If the number of filter units to be processed is less than the number of read pointers in the FIFO memory of the filter objects, then the number of read pointers to be processed is obtained by merging the pointers.

7. A screening device, characterized in that, The device includes: The first reading module is used to read filtered objects based on interrupt control; The second read module is used to read the reference object through multiple buffer registers respectively; The filtering module is used to select a buffer register and group the reference objects read from the selected buffer memory; it includes: If the total number of target benchmark objects Then the target reference object is divided into Groups, each group containing one base object; where, The number of filter units is the target reference object, which is the reference object read from the selected buffer memory; like Then determine the remainder. ;like Then the target baseline object is divided into equal parts. Group; if Then select from the target reference object. Each baseline object is divided into... Groups, randomly selected from all groups. Each group is supplemented with an ungrouped target baseline object; The target condition is determined between each group of baseline objects and each filter object through multiple filtering units; the step of selecting a buffer register and subsequent steps are re-executed until all baseline objects have been judged against each filter object to obtain the filtering results.

8. An electronic device, characterized in that, include: Memory; processor; as well as Computer programs; The computer program is stored in the memory and configured to be executed by the processor to implement the method as described in any one of claims 1-6.

9. A computer-readable storage medium, characterized in that, It stores a computer program thereon; the computer program is executed by a processor to implement the method as described in any one of claims 1-6.

Citation Information

Patent Citations

  • Particle screening method and device, electronic equipment and storage medium

    CN117358611A

  • Caching method, device and equipment and computer readable storage medium

    CN119620956A