Detailed Description
In order to make the technical solutions in the present specification better understood by those skilled in the art, the technical solutions in the embodiments of the present specification will be clearly and completely described below with reference to the drawings in the embodiments of the present specification, and it is obvious that the described embodiments are only some embodiments of the present application, not all embodiments. All other embodiments, which can be made by one of ordinary skill in the art based on the embodiments herein without making any inventive effort, shall fall within the scope of the present application.
As shown in fig. 1, a first embodiment of the present disclosure provides a task execution system, and specifically, the task execution system determines a target task execution policy, where the target task execution policy includes a task execution object corresponding to a target task; the task execution system sends a task instruction to the task execution object, wherein the task instruction comprises a task to be executed and task execution time which are mutually corresponding, so that the task execution object can meet the target task execution strategy when executing the task to be executed corresponding to the task execution time according to the received task execution time; the sending time of any task instruction is located before the task execution time included in the task instruction.
In this embodiment, by using a task instruction, the task instruction includes a task to be executed and a task execution time corresponding to each other, and the task execution time is located after the sending time of the task instruction, so as to implement reservation of task execution of a task execution object, so that the task execution object can execute a predetermined task at the predetermined task execution time, and improve task execution efficiency and effect.
From the program perspective, the execution body of the above-mentioned flow may be a computer, a server, a corresponding task execution system, or the like. In addition, the third party application client may assist the execution body in executing the above-mentioned flow.
Fig. 2 is a flow chart of a task execution method in a second embodiment of the present disclosure, and fig. 3 is a task execution process schematic diagram in the present embodiment, where, in combination with fig. 2 and fig. 3, the task execution method in the present embodiment includes:
s101: and determining a target task execution strategy, wherein the target task execution strategy comprises a task execution object corresponding to the target task.
In this embodiment, the "target task" may be any task, and it is not necessary to distinguish the task type, task time, or other conditions, or the like. Any task may be designated as a target task, and conditions to be met by the target task may be designated. The target tasks may include one or more stage tasks, each of which is executed in a certain order; one or more subtasks may also be included; the sub-tasks may be performed simultaneously by one or more of them, or may be performed in a certain order.
The task execution object corresponding to the target task, that is, the executor of the target task, is not specifically limited in this embodiment, and may be a server, a service system, an application, or the like, and the task execution object may execute a plurality of tasks at the same time.
In this embodiment, a target task execution policy may be determined, where the execution policy may define an execution process of the target task; the execution policy includes, but is not limited to, target task content, target task execution time, target task execution order, task execution object, etc. For example, the target task includes a plurality of stage tasks, each executing task is executed according to a certain order, and the execution order belongs to a target task execution strategy; for another example, the target task includes a plurality of sub-tasks, each of which has a respective execution time, and the sub-tasks may be executed one or more simultaneously or may be executed in a certain order, which also belongs to the target task execution policy.
The following list of correspondence situations where a target task and a task execution object may occur (the present embodiment is not limited to the case listed below):
1.1 the target task is a single task without segmentation
For example, the task execution object is a server a, and the target task is "server is switched from the database F1 to the database F2" (here, for example, a specific server is not specified in the target task in a macroscopic sense, but the target task is completed by a specific server in a specific to actual scenario, and the following is the same).
1.1, the target task corresponds to a single task, and a task execution policy corresponding to the target task, such as when to execute the target task and a task execution object corresponding to the target task, can be determined.
1.1, there may be a plurality of task execution objects, each task execution object executing the above-mentioned target task; for example, a plurality of task execution objects may execute target tasks at the same time at a specified time, or a plurality of task execution objects may execute target tasks in a certain order.
1.2 the target task comprises a plurality of stage tasks
For example, the task execution object is server a, the target task is "server is switched from database F1 to database F3", and the phase task may be "server a is switched from database F1 to database F2" and "server a is switched from database F2 to database F3".
1.2, a task execution policy corresponding to the target task, such as an execution sequence of each stage task, respective execution time, an execution object, and the like, may be determined. For example:
(1) Assuming that the target task is a task B, the task B comprises m stage tasks of B1, B2, … … and Bm (m is more than or equal to 2), and the m stage tasks can be executed simultaneously;
(2) Assuming that the target task is task B, and task B includes m stage tasks of B1, B2, … … and Bm (m is greater than or equal to 2), the m stage tasks can have strict execution sequence, for example, the sequence of B1, B2, … … and Bm is just; the strict execution sequence means that the task of the next stage needs to be started after the task of the previous stage is executed or started to be executed ("the previous stage and the next stage are adjacent two, and the following is the same);
(3) Assuming that the target task is a task B, the task B comprises m stage tasks of B1, B2, … … and Bm (m is greater than or equal to 2), and then the m stage tasks can be executed simultaneously under the condition that a plurality of stage tasks can be executed simultaneously, for example, B1 and B2 can be executed simultaneously, and when B1 and B2 are executed completely or are executed initially, the tasks are executed according to the sequence of B3, … … and Bm; in this way, the individual phase tasks remain overall sequential (B1 and B2 then B3, … …, bm) while remaining locally simultaneous (B1 and B2 executing simultaneously).
In the case of 1.2, there may be one or more task execution objects, and each stage task may be executed by one task execution object or may be executed by a plurality of task execution objects; each task execution object may be used to execute one or more phase tasks.
1.3, the target task includes a plurality of sub-tasks (each sub-task can be relatively independent)
For example, the task execution objects are the server A1 and the server A2, and the target task is "server is switched from the database F1 to the database F2", and then the subtasks may be "server A1 is switched from the database F1 to the database F2" and "server A2 is switched from the database F1 to the database F2".
1.3, a task execution policy corresponding to the target task, such as an execution sequence of each sub task, respective execution time, an execution object, and the like, may be determined. For example:
(1) Assuming that the target task is a task C, the task C comprises m sub-tasks of C1, C2, … … and Cm (m is more than or equal to 2), and the m sub-tasks can be executed simultaneously;
(2) Assuming that the target task is task C, and the task C comprises m sub-tasks of C1, C2, … … and Cm (m is greater than or equal to 2), the m sub-tasks can have strict execution sequence, for example, the sequence of C1, C2, … … and Cm is just; the strict execution sequence means that the next sub-task needs to be started after the previous sub-task is executed or started to be executed (the former sub-task and the latter sub-task are adjacent two, and the following is the same);
(3) Assuming that the target task is a task C, the task C comprises m sub-tasks of C1, C2, … … and Cm (m is larger than or equal to 2), and then the m sub-tasks can be executed simultaneously, for example, C1 and C2 can be executed simultaneously, and when the execution of both C1 and C2 is finished or the execution is started, the tasks are executed according to the order of C3, … … and Cm; in this way, the individual subtasks remain overall sequential (C1 and C2 followed by C3, … …, cm) while remaining locally simultaneous (C1 and C2 being executed simultaneously).
1.3, one or more task execution objects may be provided, and each sub-task may be executed by one task execution object or may be executed by a plurality of task execution objects; each task execution object may be used to execute one or more sub-tasks.
In the present embodiment, the possibility of having the association and the execution order between the respective stage tasks may be higher than that of the sub-tasks.
S102: a task instruction is sent to the task execution object, wherein the task instruction comprises a task to be executed and task execution time which are mutually corresponding, so that the task execution object can meet the target task execution strategy when executing the task to be executed corresponding to the task execution time according to the received task execution time; the sending time of any task instruction is located before the task execution time included in the task instruction.
After determining the task execution object, one or more task instructions may be sent to the task execution object, where the task instructions include tasks to be executed and task execution times that correspond to each other, that is, for any task instruction, the tasks to be executed and the task execution times included in the task instruction correspond to each other, and the task instruction may include one or more tasks to be executed and may also include one or more task execution times. Wherein the task to be executed includes, but is not limited to, the target task or the stage task or the sub task in S103.
For any task instruction, the correspondence relationship between the task to be executed and the task execution time included in the task instruction includes, but is not limited to:
2.1, one task to be executed corresponds to one task execution time
That is, each task to be executed has a corresponding task execution time, and the task execution times of different tasks to be executed are different.
2.1, one task to be executed corresponds to a plurality of task execution times
If a certain task to be executed corresponds to a plurality of task execution times, the task to be executed is executed at the corresponding plurality of task execution times.
2.3, the plurality of tasks to be executed correspond to one task execution time
If the plurality of tasks to be executed correspond to the same task execution time, the plurality of tasks to be executed are executed at the task execution time which corresponds to the plurality of tasks to be executed.
In this embodiment, the task content to be executed included between different task instructions sent to the same task execution object may be the same, and the task content to be executed included between task instructions of different task objects may be the same. Since task execution objects generally means that the task execution objects perform certain actions, such as processing data, the "same" between tasks to be performed herein means that the task execution objects perform the same type of action, and does not mean that the tasks to be performed are completely the same. For example, if the tasks to be executed in the task instructions sent to the server a and the server B are all switched from the database F1 to the database F2, the actions to be performed by the server a and the server B are all "switched from the database F1 to the database F2", but the codes, parameters, etc. corresponding to the tasks to be executed sent to the server a and the server B are not necessarily the same.
In this embodiment, for any task instruction, the sending time of the task instruction is located before the task execution time included in the task instruction and before each task execution time included in the task instruction. For example, if a task instruction includes task execution times T1 and T2, the task instruction should issue to the task execution object before times T1 and T2. The sending time of the task instruction may be determined before the task instruction is sent to the task execution object. Specifically, the manner of determining the sending time of the task instruction includes, but is not limited to:
3.1, fixed value mode
For any task instruction, the difference between the sending time of the task instruction and the task execution time included in the task instruction is equal to or greater than one or more preset values, and the difference between the sending time of the task instruction and each task execution time included in the task instruction is equal to or greater than one or more preset values. For example, if a task instruction includes task execution times T1 and T2, the task instruction should be issued to the task execution object not only before T1 and T2, but also with a difference from T1 and T2 equal to or greater than one or more preset values. The sending time of the task instruction may be determined according to the task execution time included in the task instruction and the "difference between the sending time of the task instruction and the task execution time included in the task instruction", for example, the sending time of the task instruction may be the task execution time included in the task instruction and the difference may be pushed forward, and if there are multiple task execution times, the difference may be the largest, that is, the time that is pushed forward and backward is the most forward.
3.2, determining the task instruction sending time according to the number of the tasks to be executed
The method is performed on the basis of 3.1, for any task instruction, the more the task instruction includes the number of tasks to be executed, the larger the difference between the sending time of the task instruction and the execution time of each task included in the task instruction, or the larger the preset value in 3.1.
For example, assume that a task instruction includes tasks D1, D2, … …, dm (m.gtoreq.1) to be performed; task execution times T1, T2, … …, tn (n.gtoreq.1); the larger m is, the larger the difference between the transmission time of the task instruction and T1, T2, … …, tn is.
The task to be executed and the task execution time in the task instruction in S102 correspond to the target task execution policy in S101. For example:
(1) The execution policy determined in step S101.1 includes the execution time of the target task and the task execution object, and then the task instruction may be sent to the determined task execution object, where the task instruction includes the target task (i.e. the task to be executed) and the task execution time, and the task execution time in the task instruction is included in the execution time of the target task.
For example, the target task is "the server is switched from the database F1 to the database F2", the target task execution policy is "when the execution time of the target task is a certain day 12 and the task execution objects are servers A1 and A2", then the task instruction may be sent to the servers A1 and A2, and the task instruction sent to the server A1 may include "the target task (i.e., the task to be executed), a certain day 12 (i.e., the task execution time)"; the task instruction sent to the server A2 may include "target task (i.e., task to be executed), time of day 12 (i.e., task execution time)".
(2) The execution policy determined in step S101.2 includes the execution time of each stage task and the task execution object, and then the task instruction may be sent to the determined task execution object, where the task instruction includes the stage task (i.e. the task to be executed) and the task execution time that the task execution object needs to execute.
For example, the target task is "server is switched from database F1 to database F3", the target task execution policy is "task execution object is server a", the stage task 1 is "server a is switched from database F1 to database F2", the stage task 2 is "server a is switched from database F2 to database F3", the execution time of stage task 1 is on day 12, the execution time of stage task 2 is on day 13 ", then the task instruction may be sent to server a, the task instruction may include" stage task 1 (i.e., task to be executed) ", stage task 2 (i.e., task to be executed)" and "day 12 (i.e., task execution time corresponding to stage task 1)", on day 13 (i.e., task execution time corresponding to stage task 2) ", or the task instruction may include" stage task 1 (i.e., task to be executed), on day 12 (i.e., task execution time corresponding to stage task 1) "and" stage task 2 (i.e., task execution time corresponding to stage task 2) "; of course, the task instruction may also include a correspondence between the phase task and the task execution time.
(3) The execution policy determined in step S101.3 includes the execution time of each sub-task and the task execution object, and then the task instruction may be sent to the determined task execution object, where the task instruction includes the sub-task (i.e. the task to be executed) and the task execution time that the task execution object needs to execute.
For example, the target task is "the server is switched from the database F1 to the database F2", the target task execution policy is "the task execution object is the server A1 and the server A2", the sub task 1 is "the server A1 is switched from the database F1 to the database F2", the sub task 2 is "the server A2 is switched from the database F1 to the database F2", the execution time of the sub task 1 is a certain day 12, and the execution time of the sub task 2 is a certain day 13 ", then the task instruction may be sent to the server A1 and the server A2, the task instruction sent to the server A1 may include" the sub task 1 (i.e., the task to be executed) ", the task instruction sent to the server A2 includes" the sub task 2 (i.e., the task to be executed) ", and the task instruction sent to the server A2 at a certain day 12 (i.e., the task execution time corresponding to the sub task 2)".
It should be noted that, the task instruction in this embodiment is exemplary or symbolic, for example, "divide task 1 (i.e., task to be executed)", when the task is executed on day 12 (i.e., task execution time corresponding to divide task 1), the actual task instruction may be in the form of a code or the like.
Because the task to be executed and the task execution time in the task instruction in S102 correspond to the target task execution policy in S101, the task execution object executes the task to be executed according to the task execution time in the task instruction to satisfy the task execution policy. For example, the target task is "the server is switched from the database F1 to the database F2", the target task execution policy is "when the execution time of the target task is on day 12, the task execution objects are the servers A1 and A2", and the task instruction sent to the server A1 may include "the target task (i.e., the task to be executed), on day 12 (i.e., the task execution time)"; the task instruction sent to the server A2 may include "target task (i.e., task to be executed), at a certain day 12 (i.e., task execution time)", that is, reservation is made for the servers A1 and A2, and at the certain day 12, the servers A1 and A2 are simultaneously switched from the database F1 to the database F2.
In this embodiment, the sending time of the task instruction is before the task execution time included in the task instruction, which is equivalent to sending a reservation type task instruction to the task execution object, where the reservation type task (reservation task execution time+reservation task to be executed) is included in the instruction, instead of the task that needs to be executed immediately after the task execution object receives the task; under the reserved condition, when the task execution time in the task instruction is reached, the task execution object executes the task to be executed corresponding to the task execution time, so that the task execution object is ensured to execute the preset task at the preset task execution time, and the task execution efficiency and effect are improved; in this embodiment, a difference between a sending time of a task instruction and a task execution time included in the task instruction can be determined, so that not only can an effect of reservation be achieved, but also a task object can be ensured to receive the task instruction, and further task execution efficiency and effect are provided.
As shown in fig. 4, a third embodiment of the present disclosure provides a task execution system, and in particular, the task execution system receives a task instruction, where the task instruction includes a task to be executed and a task execution time that correspond to each other; and the task execution system executes the task to be executed corresponding to the task execution time according to the received task execution time.
In this embodiment, by using a task instruction, the task instruction includes a task to be executed and a task execution time corresponding to each other, and the task execution time is located after the receiving time of the task instruction, so as to implement reservation of task execution of a task execution object, so that the task execution object can execute a predetermined task at the predetermined task execution time, and improve task execution efficiency and effect.
From the program perspective, the execution body of the above-mentioned flow may be a computer, a server, a corresponding task execution system, or the like. In addition, the third party application client may assist the execution body in executing the above-mentioned flow.
Fig. 5 is a flowchart of a task execution method in a fourth embodiment of the present disclosure, and fig. 6 is a task execution process diagram in the present embodiment, where, in combination with fig. 5 and fig. 6, the task execution method in the present embodiment includes:
S201: and receiving a task instruction, wherein the task instruction comprises a task to be executed and task execution time which are mutually corresponding.
The task instruction, the task to be executed, and the task execution time please see the second embodiment, and the receiver of the task instruction may be the task execution object or another party, and the other party is interconnected with the task execution object.
S202: and executing the task to be executed corresponding to the task execution time according to the received task execution time.
If the receiver of the task instruction is a task execution object, the task execution object executes a task to be executed corresponding to the task execution time according to the received task execution time; if the receiver of the task instruction is the other party interconnected with the task execution object, the task execution object can execute the task to be executed corresponding to the task execution time according to the received task execution time through communication with the other party; the other party and the task execution object may be physically integrated or belong to one product or device or apparatus, and thus the other party and the task execution object may be regarded as the same object. The following description will take a task execution object as an example of a task instruction recipient.
In this embodiment, after receiving the task instruction, a flow component of an execution plan is newly added, and the execution plan executes a specific preset operation (task to be executed) at a specified time (task execution time). An execution plan consists of plan attributes and plan executors, the plan attributes including predicted execution time (i.e., task execution time); the plan executor includes specific operations (i.e., tasks to be performed) to be performed at an estimated execution time.
For example, if the task execution object is server a, the task to be executed is that server a is switched from database F1 to database F2, and the corresponding task execution time is 12 days. Executing the task to be executed corresponding to the task execution time according to the received task execution time may specifically include (but is not limited to) the following ways:
as shown in fig. 7, after receiving the task instruction, the server a adds a new execution plan configuration (may be in the memory of the server a), where the execution plan configuration includes a task execution time included in the task instruction and a task to be executed corresponding to the task execution time (hereinafter, a single task execution time T is taken as an example, and other task execution times are similarly available);
A certain thread of the server a (herein, from the perspective of a certain thread, the same applies to other threads) acquires "database F1 or database F2 time" (hereinafter referred to as database time) and task execution time T (while inquiring whether the above configuration exists) at regular time, and if the database time is equal to the task execution time T, the thread of the server a acquires an execution plan lock; because the thread of the server a regularly acquires the database time, it is possible that the database time acquired at a certain time is smaller than the task execution time T, and the database time acquired at the next time is larger than the task execution time T, if the database time acquired at the next time is larger than the task execution time T and the difference between the database time acquired at the next time and the task execution time T accords with a predetermined difference range, an execution plan lock can be acquired (if the task execution time T cannot be acquired or the task execution time T has expired, it is indicated that the task to be executed corresponding to the task execution time T has been executed, the thread of the server a can do other business operations without executing the task to be executed corresponding to the task execution time T);
then, the thread of server a (again) queries whether the configuration exists; if the configuration exists, the thread of the server A executes the task to be executed corresponding to the task execution time T, deletes the execution plan configuration and releases the execution plan lock; if the configuration is not found, the concurrent thread is indicated to update the database weight, and the thread of the server A can do other business operations without executing the task to be executed corresponding to the task execution time T.
It can be seen that the time of receiving the task instruction is before the task execution time included in the task instruction, otherwise, the task to be executed in the task instruction may not be executed.
In this embodiment, the time for receiving the task instruction is before the task execution time included in the task instruction, which is equivalent to receiving the reserved task, rather than the task that needs to be executed immediately after the task execution object receives the task instruction; under the reserved condition, when the task execution time in the task instruction is reached, the task execution object executes the task to be executed corresponding to the task execution time, so that the task execution object is ensured to execute the preset task at the preset task execution time, and the task execution efficiency and effect are improved.
As shown in fig. 8, a fifth embodiment of the present specification provides a task execution device, including:
the task planning module 301 is configured to determine a target task execution policy, where the target task execution policy includes a task execution object corresponding to a target task;
the instruction sending module 302 is configured to send a task instruction to the task execution object, where the task instruction includes a task to be executed and task execution time that are corresponding to each other, so that the task execution object satisfies the target task execution policy when executing the task to be executed corresponding to the task execution time according to the task execution time received by the task execution object;
The time determining module 303 is configured to determine a task instruction sending time, so that, for any task instruction, the sending time of the task instruction is located before a task execution time included in the task instruction.
Optionally, the target task includes a plurality of sub-tasks or stage tasks, and the target task execution policy includes execution time and/or execution sequence of each sub-task or stage task.
Optionally, the task to be executed is the target task or the subtask or the stage task.
Optionally, for any task instruction, the correspondence between the task to be executed and the task execution time included in the task instruction includes:
one task to be executed corresponds to one task execution time;
or alternatively, the first and second heat exchangers may be,
one task to be executed corresponds to a plurality of task execution times;
or alternatively, the first and second heat exchangers may be,
the plurality of tasks to be executed corresponds to one task execution time.
Optionally, for any task instruction, the difference between the sending time of the task instruction and the task execution time included in the task instruction is equal to or greater than one or more preset values.
Optionally, determining the task instruction sending time includes:
for any task instruction, determining a difference value between the sending time of the task instruction and the task execution time of the task instruction according to the number of tasks to be executed included in the task instruction;
And determining the sending time of the task instruction according to the task execution time included in the task instruction and the difference value.
As shown in fig. 9, a sixth embodiment of the present specification provides a task execution device including:
the instruction receiving module 401 is configured to receive a task instruction, where the task instruction includes a task to be executed and a task execution time that are corresponding to each other;
the task execution module 402 is configured to execute a task to be executed corresponding to the task execution time according to the received task execution time.
Optionally, executing the task to be executed corresponding to the task execution time according to the received task execution time includes:
after receiving the task instruction, adding an execution plan configuration, wherein the execution plan configuration comprises the task execution time and a task to be executed corresponding to the task execution time;
and determining whether the task execution time is reached, if so, and if the execution plan configuration still exists, executing the task to be executed corresponding to the reached task execution time.
A seventh embodiment of the present specification provides a task execution device including:
at least one processor;
the method comprises the steps of,
a memory communicatively coupled to the at least one processor;
Wherein,,
the memory stores instructions executable by the at least one processor to enable the at least one processor to:
determining a target task execution strategy, wherein the target task execution strategy comprises a task execution object corresponding to a target task;
a task instruction is sent to the task execution object, wherein the task instruction comprises a task to be executed and task execution time which are mutually corresponding, so that the task execution object can meet the target task execution strategy when executing the task to be executed corresponding to the task execution time according to the received task execution time;
the sending time of any task instruction is located before the task execution time included in the task instruction.
An eighth embodiment of the present specification provides a task execution device including:
at least one processor;
the method comprises the steps of,
a memory communicatively coupled to the at least one processor;
wherein,,
the memory stores instructions executable by the at least one processor to enable the at least one processor to:
Receiving a task instruction, wherein the task instruction comprises a task to be executed and task execution time which correspond to each other;
and executing the task to be executed corresponding to the task execution time according to the received task execution time.
A ninth embodiment of the present specification provides a computer-readable storage medium storing computer-executable instructions which, when executed by a processor, perform the steps of:
determining a target task execution strategy, wherein the target task execution strategy comprises a task execution object corresponding to a target task;
a task instruction is sent to the task execution object, wherein the task instruction comprises a task to be executed and task execution time which are mutually corresponding, so that the task execution object can meet the target task execution strategy when executing the task to be executed corresponding to the task execution time according to the received task execution time;
the sending time of any task instruction is located before the task execution time included in the task instruction.
A tenth embodiment of the present specification provides a computer-readable storage medium storing computer-executable instructions which, when executed by a processor, perform the steps of:
Receiving a task instruction, wherein the task instruction comprises a task to be executed and task execution time which correspond to each other;
and executing the task to be executed corresponding to the task execution time according to the received task execution time.
The above embodiments may be used in combination.
The foregoing describes certain embodiments of the present disclosure, other embodiments being within the scope of the following claims. In some cases, the actions or steps recited in the claims can be performed in a different order than in the embodiments and still achieve desirable results. Furthermore, the processes depicted in the accompanying drawings do not necessarily have to be in the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
In this specification, each embodiment is described in a progressive manner, and identical and similar parts of each embodiment are all referred to each other, and each embodiment mainly describes differences from other embodiments. In particular, for apparatus, devices, non-transitory computer readable storage medium embodiments, the description is relatively simple, as it is substantially similar to method embodiments, with reference to portions of the description of method embodiments being relevant.
The apparatus, the device, the nonvolatile computer readable storage medium and the method provided in the embodiments of the present disclosure correspond to each other, and therefore, the apparatus, the device, and the nonvolatile computer storage medium also have similar advantageous technical effects as those of the corresponding method, and since the advantageous technical effects of the method have been described in detail above, the advantageous technical effects of the corresponding apparatus, device, and nonvolatile computer storage medium are not described herein again.
In the 90 s of the 20 th century, improvements to one technology could clearly be distinguished as improvements in hardware (e.g., improvements to circuit structures such as diodes, transistors, switches, etc.) or software (improvements to the process flow). However, with the development of technology, many improvements of the current method flows can be regarded as direct improvements of hardware circuit structures. Designers almost always obtain corresponding hardware circuit structures by programming improved method flows into hardware circuits. Therefore, an improvement of a method flow cannot be said to be realized by a hardware entity module. For example, a programmable logic device (Programmable Logic Device, PLD) (e.g., field programmable gate array (Field Programmable Gate Array, FPGA)) is an integrated circuit whose logic function is determined by the programming of the device by a user. A designer programs to "integrate" a digital system onto a PLD without requiring the chip manufacturer to design and fabricate application-specific integrated circuit chips. Moreover, nowadays, instead of manually manufacturing integrated circuit chips, such programming is mostly implemented by using "logic compiler" software, which is similar to the software compiler used in program development and writing, and the original code before the compiling is also written in a specific programming Language, which is called Hardware Description Language (HDL), but HDL is not only one, but a plurality of kinds, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware DescrIP address extension), confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Descr IP address extension), lava, lola, myHDL, PALASM, RHDL (Ruby Hardware Descr IP address extension), etc., VHDL (Very-High-Speed Integrated Circuit Hardware Descr IP address extension) and Verilog) are most commonly used at present. It will also be apparent to those skilled in the art that a hardware circuit implementing the logic method flow can be readily obtained by merely slightly programming the method flow into an integrated circuit using several of the hardware description languages described above.
The controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer readable medium storing computer readable program code (e.g., software or firmware) executable by the (micro) processor, logic gates, switches, application specific integrated circuits (Application Specific Integrated Circuit, ASIC), programmable logic controllers, and embedded microcontrollers, examples of which include, but are not limited to, the following microcontrollers: ARC 625D, atmel AT91SAM, microchIP address PIC18F26K20, and Silicone Labs C8051F320, the memory controller may also be implemented as part of the control logic of the memory. Those skilled in the art will also appreciate that, in addition to implementing the controller in a pure computer readable program code, it is well possible to implement the same functionality by logically programming the method steps such that the controller is in the form of logic gates, switches, application specific integrated circuits, programmable logic controllers, embedded microcontrollers, etc. Such a controller may thus be regarded as a kind of hardware component, and means for performing various functions included therein may also be regarded as structures within the hardware component. Or even means for achieving the various functions may be regarded as either software modules implementing the methods or structures within hardware components.
The system, apparatus, module or unit set forth in the above embodiments may be implemented in particular by a computer chip or entity, or by a product having a certain function. One typical implementation is a computer. In particular, the computer may be, for example, a personal computer, a laptop computer, a cellular telephone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
For convenience of description, the above devices are described as being functionally divided into various units, respectively. Of course, the functions of each element may be implemented in one or more software and/or hardware elements when implemented in the present specification.
It will be appreciated by those skilled in the art that the present description may be provided as a method, system, or computer program product. Accordingly, the present specification embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present description embodiments may take the form of a computer program product on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
The present description is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the specification. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may 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, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In one typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include volatile memory in a computer-readable medium, random Access Memory (RAM) and/or nonvolatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
Computer readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of storage media for a computer include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium, which can be used to store information that can be accessed by a computing device. Computer-readable media, as defined herein, does not include transitory computer-readable media (transmission media), such as modulated data signals and carrier waves.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one … …" does not exclude the presence of other like elements in a process, method, article or apparatus that comprises the element.
The description may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
In this specification, each embodiment is described in a progressive manner, and identical and similar parts of each embodiment are all referred to each other, and each embodiment mainly describes differences from other embodiments. In particular, for system embodiments, since they are substantially similar to method embodiments, the description is relatively simple, as relevant to see a section of the description of method embodiments.
The foregoing description is by way of example only and is not intended as limiting the application. Various modifications and variations of the present application will be apparent to those skilled in the art. Any modification, equivalent replacement, improvement, etc. which come within the spirit and principles of the application are to be included in the scope of the claims of the present application.