Detailed Description
In order to make the objects, technical solutions and advantages of the present application more apparent, the technical solutions of the present application will be described in detail and completely with reference to the following specific embodiments of the present application and the accompanying drawings. It should be apparent that the described embodiments are only some of the embodiments of the present application, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
The technical solutions provided by the embodiments of the present application are described in detail below with reference to the accompanying drawings.
Fig. 1 is a process for monitoring system anomaly according to an embodiment of the present application, which may specifically include the following steps:
s101: feature values of at least one dimension generated by the target system are collected.
In the embodiment of the present application, the monitoring device for monitoring the abnormal condition occurring in the target system may be a monitoring device in the target system, or may be a monitoring server independent of the target system. Of course, in order to avoid that the target system is stuck to cause the device to monitor the abnormal condition of the target system, the monitoring device is usually a monitoring server independent from the target system, in this embodiment of the present application, the monitoring device may also be a server, and the server monitors the abnormal condition of the target system, and the present application does not limit whether the server is located in the target system, and may be configured according to the needs of the actual application.
And in the embodiments of the present application, the dimensions recited include, but are not limited to: one of the system calling quantity dimension, the system called quantity dimension, the system calling duration dimension, the error quantity dimension in the system and the calling quantity dimension of the system to the database; the feature value of each dimension may be a numerical value of data of different dimensions generated by the target system, wherein the feature value of each dimension may include, but is not limited to: at least one of a value of the calling quantity of the target system, a value of the called quantity of the target system, a value of the calling duration of the target system, a value of the error quantity in the target system and a value of the calling quantity of the target system to the database. That is, the magnitudes of the eigenvalues of the different dimensions may correspondingly represent the operating condition of the target system.
Further, the feature values of different dimensions of the target system collected by the server, that is, the values corresponding to the different dimensions, for example, when the dimensions are called quantities, the feature values of the dimensions may reflect the operation load of the target system caused by external access to the target system, and the specific values of the called quantities may be used to subsequently determine whether the target system is abnormal.
In addition, how to monitor the abnormal situation of the target system is described in the embodiment of the present application by taking the monitoring server as an example. When monitoring the abnormal condition of the target system, the server may monitor the characteristic value of each dimension generated by the target system with a preset time period (i.e., unit time) as a monitoring period, where the monitoring of the target system may be continuous (for example, when the monitoring of the previous time period ends, the monitoring of the next time period starts immediately), or discontinuous (for example, a fixed time period of each day is monitored as a time period).
Specifically, the server determines the feature value of each dimension generated by the target system in the last unit time according to a time period which is divided by a time length of each minute in each natural day in advance as a unit time, that is, the feature value of each dimension generated by the target system in one minute is collected every time one minute passes.
For example, if each natural day has 24 hours, i.e., 1440 minutes, one natural day is divided into 1440 units of time per minute, and each time one minute passes, the feature value of each dimension generated by the target system in the last minute (i.e., in the last unit of time) is determined. If the current time is 23 o 'clock 58 min 59 sec, the server can determine the feature values of each dimension generated by the target system within 23 o' clock 58 min 0 sec to 23 o 'clock 58 min 60 sec when the next second is 23 o' clock 59 min 0 sec.
The call volume of the target system is then the volume of data that the target system calls from an external (e.g., third party device) device. The target system is not independent in operation, and data transmission and calling with an external device are required, so that the operating pressure of the target system can be determined through the calling amount of the target system;
the called amount of the target system is the amount of the target system responding to the request of an external (such as a third-party device) device and sending data to the external device, and the called amount of the target system can also represent the operating pressure of the target system;
the calling duration of the target system is the time consumed by the target system for calling data of external equipment (such as third-party equipment), and whether a problem occurs in a third party or whether delay occurs in a network can be determined;
the error amount in the target system is the number of call failures occurring when the target system calls data or responds to a request of an external device, and may be used to determine the situation of the error occurring inside the target system, where the server may specifically obtain the number of error reporting information sent when the target system fails to call, as the number of call failures occurring in the target system, or the server may also obtain the number of execution failure services, as the number of call failures occurring in the target system, and specifically what method is specifically adopted may be set by a worker according to the needs of actual applications, which is not limited in the present application;
the calling amount of the target system to the database is the amount of the target system calling data from the database corresponding to the target system. Since the data that needs to be used during the execution of the service is not completely stored in the target system, the target system usually needs to call the data in the database during the operation, for example, the personal information of the user may be stored in the database corresponding to the target system, so when the target system executes the service that needs to use the personal information of the user, the target system needs to call the personal information of the user from the database, and the call volume of the target system to the database may also determine the operation state of the target system.
Further, the server can acquire the corresponding feature values of different dimensions in each unit time by taking the unit time as the time length, so that the server can determine the operation conditions of the target system in different unit times through the feature values of the dimensions, and the operation conditions of the target can be embodied through the feature values of multiple dimensions.
The server may be a single device, or may be a target system including a plurality of devices. The calling volume of the target system, the called volume of the target system, the calling duration of the target system, the error volume in the target system, and the calling volume of the target system to the database may all be regarded as data with different dimensions. Besides the different dimensions listed in the embodiment of the present application, other dimensions may also be included (for example, the occupancy rate of the target system to the network bandwidth, the waiting time of the target system for response, and the like), and specific contents of the other dimensions may be determined according to actual needs, and are not described here any more.
S102: and determining the probability of the target system with abnormality according to the characteristic values of the dimensions and the abnormality judgment model obtained through training.
In this embodiment, when the server obtains the feature values of each dimension generated by the target system in the last unit time, the probability that the target system is abnormal in the last unit time may be determined according to the abnormal determination model corresponding to the unit time after the pre-training is completed, so as to determine whether the target system is abnormal in the last unit time in the following.
Specifically, the abnormality determination model may be a gaussian mixture model or other models, and is not limited in this respect. In the embodiment of the present application, a gaussian mixture model is taken as an example of an abnormality determination model.
Therefore, the server may determine, in advance, a gaussian mixture model corresponding to the unit time of the monitoring of the abnormality of the target system this time according to each divided unit time, input the feature value of each dimension determined in step S101 into the gaussian mixture model, and calculate to obtain the probability of the abnormality of the target system, where each gaussian mixture model is an abnormality judgment sub-model of different time periods.
In this embodiment, the server may specifically calculate the probability of the target system having an abnormality in the time period (i.e., the unit time) by using the following formula:
wherein, the Gaussian formula is
Wherein, P (x)t) Representing the probability of the target system being abnormal in the t unit time; t represents the t-th unit time; k represents the kth dimension; l represents the total number of dimensions; w is aktRepresenting the weight value corresponding to the characteristic value of the kth dimension in the t unit time; gkt(xkt,ukt,σkt) An abnormality judgment submodel corresponding to the characteristic value of the kth dimension in the t unit time; x is the number ofktA numerical value corresponding to the characteristic value of the kth dimension generated by the target system in the t unit time and determined by the server; u. ofktRepresenting the average value of sample data of a kth dimension generated by the target system in the tth unit time historically; sigmaktRepresenting the variance of sample data of the kth dimension historically generated by the target system during the t unit time.
Wherein,
the weighted values corresponding to the dimensions are normalized, and it can be seen that the abnormality judgment model can be obtained through fitting by the weighted sum of the abnormal judgment submodels, and the probability of abnormality occurrence of the target system is obtained through calculation by the abnormality judgment model.
In this embodiment, a plurality of sample data in a unit time may be provided, where the sample data may belong to different dimensions or may belong to the same dimension, each sample data corresponds to a feature value, for example, the invocation amount of the target system, one feature value may be a value of the invocation amount of the target system generated in the unit period, and the sample data may be a value of at least one invocation amount of the target system historically generated by the target system in the same time period as the unit period.
The anomaly determination submodel may be expressed by using the above gaussian formula, where the gaussian formula corresponds to the unit time and corresponds to a feature value of a dimension, that is, in the embodiment of the present application, the same dimension of different time periods may correspond to gaussian formulas that are not completely consistent, and different dimensions of the same time period may also correspond to gaussian formulas that are not completely consistent. Since the gaussian mixture model can be obtained by fitting a plurality of abnormal judgment submodels corresponding to different dimensions, and each abnormal judgment submodel corresponds to the same time period (i.e., unit time), the gaussian mixture model (i.e., the abnormal judgment model) used by the server for calculating the abnormal probability of the target system can not be completely consistent when the abnormal judgment submodels are in different time periods. For example, the abnormality determination model corresponding to a time period of 2016, 12/1/12: 00 to 2016, 12/1/12: 01 may not completely match the abnormality determination model corresponding to a time period of 2016, 12/1/12: 01 to 2016, 12/1/12/02.
Of course, since the abnormality judgment model may be obtained by fitting the abnormality judgment submodels corresponding to the feature values of multiple dimensions, each of the abnormality judgment models corresponding to different time periods may be obtained by calculating the feature values of different dimensions. For example, continuing with the two anomaly determination models in the above example, both anomaly determination models may be formed by: the values of the calling quantity of the target system, the value of the called quantity of the target system, the value of the calling duration of the target system, the value of the error quantity in the target system and the value of the calling quantity of the target system to the database are obtained by fitting the abnormal judgment submodels corresponding to the characteristic values of the five dimensions respectively.
Correspondingly, in this embodiment of the present application, the characteristic values of the dimensions determined by the server may include: the value of the calling quantity of the target system, the value of the called quantity of the target system, the value of the calling duration of the target system, the value of the error quantity in the target system and the value of the calling quantity of the target system to the database, so that L can be 5, and then
In addition, u isktAnd the sigmaktWhen the gaussian mixture model is trained, the server determines the k-dimensional characteristic value generated by the target system in the t unit time on each of the preset number of days, that is, a value determined according to sample data used in training the gaussian mixture model. The preset number of days may be set by the staff according to the actual application, for example, 90 days (i.e., data generated by the target system in a quarter as a sample), 180 days (i.e., the target system in a half year)Data generated by the system as a sample), or 360 days (i.e., data generated by the target system in one year as a sample), etc.
In particular, u isktMay be the average of the sample data of the kth dimension generated by the target system during the t unit time of each day over the past 180 days, σktIt may be the variance corresponding to the sample data of the kth dimension generated in the t unit time of each day in the past 180 days by the target system, that is, the average value used in the variance calculation is uktSince the mean and variance are definite mathematical concepts, the corresponding formulas are not listed in the present application.
It can be seen that the probability of the abnormality of the target system can be calculated and obtained through the weighted sum of the abnormal judgment submodels.
Furthermore, the weight value w corresponding to each abnormal judgment sub-modelktIn order to improve the accuracy of the abnormality determination model, in the embodiment of the present application, the server may further determine whether the initial weight values of the abnormality determination submodels corresponding to the respective dimensions converge, respectively, for the initial weight values of the abnormality determination submodels corresponding to the respective dimensions, and when the determination result for the initial weight values of the abnormality determination submodels corresponding to the respective dimensions satisfies the convergence condition, fit the abnormal determination model according to the initial weight values of the converged abnormal determination submodels, or when the determination result for the initial weight values of the abnormal determination submodels corresponding to the respective dimensions does not satisfy the convergence condition, adjust the initial weight values that do not satisfy the convergence condition.
Specifically, the server may adopt an Expectation Maximization (EM) Algorithm to apply an initial weight value (i.e., w) corresponding to each dimension feature value in the gaussian mixture modelkt) And E, calculating to obtain an updated weight value of each initial weight value, and judging whether the initial weight value is converged or not according to the updated weight value and the initial weight value.
And when the judgment result of the initial weight value of the abnormal judgment submodel corresponding to each dimension meets the convergence condition, fitting to obtain the abnormal judgment model according to the initial weight value of each abnormal judgment submodel which converges. In the embodiment of the present application, since the weight values corresponding to the abnormal judgment submodels are normalized, when the weight value of the abnormal judgment submodel corresponding to a certain dimension is converged and the weight values of the abnormal judgment submodels corresponding to other dimensions are not converged, the server may continue to train the weight values until the weight values are converged, and judge the weight values by using the converged weight values as the convergence condition;
alternatively, the convergence condition may be that the server may train only the non-converged weight values until each weight value converges;
alternatively, the convergence condition may be that, as long as one weight value converges, each weight value is determined to satisfy the convergence condition, and the training process for each weight value is stopped, and so on. Of course, the specific manner in which the present application can be set by the worker is not limited.
If the initial weight value does not meet the preset threshold value, the initial weight value of the abnormality judgment submodel corresponding to at least one dimension is adjusted (namely, the initial weight value of the abnormality judgment submodel corresponding to the dimension is trained).
Specifically, the server may continue to cyclically adopt the step M and the step E of the EM algorithm, train an initial weight value of the abnormality judgment submodel corresponding to the dimension, and judge again whether the weight value obtained by the training of the abnormality judgment submodel corresponding to the dimension converges, if so, use the trained weight value as a weight value of the abnormality judgment submodel corresponding to the dimension for fitting the abnormality judgment model, and if not, continue to train the weight value obtained by the training of the abnormality judgment submodel corresponding to the dimension again until the weight value obtained by the training of the abnormality judgment submodel corresponding to the dimension converges.
It should be noted that the training process of the weight values is performed in advanceTraining object may be said to be x 'of the previous day'ktAnd corresponding abnormal judgment submodels.
Specifically, the server may adopt an initialized random number as each w during the trainingktThe initial corresponding values, of course, are normalized by the weight values corresponding to the eigenvalues of each dimension, so each wktThe initial corresponding values are also normalized.
First, in step E of the EM algorithm, the x 'is calculated'
ktThe probability generated by the Gaussian model corresponding to the characteristic value of the k-th dimension can adopt a formula
And calculating, namely calculating to obtain the maximum likelihood estimation value corresponding to the characteristic value of each dimension. The w obtained at this time
ktIs the updated weight value of the initial weight value, the server can be based on the w
ktAnd judging whether the initial weight value is converged, judging whether the weight value corresponding to each dimension meets a convergence condition, if so, directly adopting the initial weight value to fit the abnormal judgment model (namely, the Gaussian mixture model), and if not, continuing to execute the subsequent M steps by the server.
In the M step of the EM algorithm, recalculating the abnormality judgment submodel corresponding to the characteristic value of the kth dimension and recalculating the corresponding w of the abnormality judgment submodel
ktThe parameters of (2) can be specifically expressed by formulas
And formulas
Wherein, the x
iktAnd the sample data corresponding to the ith training sample of the characteristic value of the kth dimension in the tth unit time. Then, at this time, the parameters u of the abnormal judgment submodels
ktAnd σ
ktAfter updating the parameters, the server can continue the calculation in step E according to the updated parameters, continue to update the weight value of the abnormality judgment submodel of the kth dimension, judge whether to converge, and judge whether to judge again whether to convergeThe convergence condition is satisfied.
The server may then cycle through E and M steps (i.e., training each weight value) until wktUntil the convergence condition is satisfied (i.e., training is complete). Wherein, the server determines whether the weighted value converges, which may be w obtained in the previous stepktWith w obtained in the next stepktIs less than a preset value, or the number of repeated iterations reaches a preset number, and so on. The specific manner to determine whether to converge or not, or how to set the convergence value, may be set by the operator according to the needs of the practical application, and the present application does not limit this.
S103: and when the probability is between the small probability intervals corresponding to the abnormity judgment model, determining that the target system is abnormal.
In the embodiment of the present application, after the server determines the probability that the target system is abnormal in the unit time, it may determine whether the probability corresponds to a small probability event according to gaussian theorem, that is, determine whether the probability is within a small probability interval corresponding to the abnormality determination model, and determine that the target system is abnormal when the probability is determined to be within the small probability interval.
Specifically, a method of determining 3 times variance in gaussian theorem, that is, determining whether P (x) is present or not, may be adoptedt)≤P(ut±3σt) If so, determining that the target system is abnormal in the unit time and giving an alarm, otherwise determining that the target system is not abnormal in the unit time. That is to say, the server may determine, according to the trained anomaly determination model, a distribution of the anomaly probability corresponding to the target system in the unit time, specifically, a number of dimensions of the feature values used, for example, if only feature values of 2 dimensions are used, the server may determine, in a two-dimensional space, a distribution of the anomaly probability corresponding to the target system in the unit time, and if feature dimensions of 5 dimensions are used, the server may determine, in a 5-dimensional vector space, a distribution of the anomaly probability corresponding to the target system in the unit time, and then the server may determine that the target system is in the unit timeAnd if the probability of the corresponding abnormality in the unit time is in the interval of the small probability event in the spatial distribution, determining that the target system is abnormal if the probability is in the interval of the small probability event in the spatial distribution, and otherwise, determining that the target system is normal.
Further, after the server determines that the target system is abnormal, in the embodiment of the present application, the server may further send an alarm message to prompt the worker that the target system is abnormal, so that the worker may start processing in time, and of course, how to send the alarm message is not specifically limited.
Through the method for monitoring the target system abnormality shown in fig. 1, the server may determine, based on feature values of multiple dimensions and according to a pre-trained abnormality determination model, a probability that the target system is abnormal, and determine that the target system is abnormal when the probability is in a small probability interval corresponding to the abnormality determination model. The abnormality judgment model can be a Gaussian mixture model and can correspond to one of the pre-divided unit times, namely each different unit time can correspond to an incompletely consistent Gaussian mixture model, so that the method provided by the application can give consideration to the running conditions of the target system corresponding to different time periods in one day, and the abnormality of the target system can be accurately monitored. Meanwhile, different from the prior art, the method for setting the warning threshold value for each device is characterized in that the abnormal probability distribution corresponding to the whole target system in different unit time is determined according to the historical records, namely the characteristic value of each dimensionality generated by the target system is not the data of a single device but the characteristic value corresponds to the data of the whole target system, so that the abnormity of the target system is judged more accurately, the missing report and the false report of the abnormity of the target system can be effectively avoided, and the abnormity monitoring efficiency of the target system is improved.
In addition, in this embodiment of the application, in order to reduce negative effects caused by target system jitter, the server may determine, according to a preset number, an average value of sample data of the dimension in a plurality of time periods adjacent to the time period, as the feature value of the dimension generated by the target system in the time period, for the feature value of each dimension. The preset number can be set by a worker according to the requirements in actual application.
For example, if the currently determined unit time is one minute corresponding to 23:58 to 23:59, and the preset number is 5, the server may determine feature values of the dimensions generated by the target system in 5 minutes before 23:58, and determine an average value of the feature values of the dimensions according to different dimensions, as the feature values of the dimensions corresponding to 23:58 to 23: 59.
Further, when the mixed feature model is trained, since the target system may be abnormal in history, and then there may be an abnormal feature value in the history, the server may determine, according to the feature value marked as abnormal, a dimension corresponding to the feature value marked as abnormal, determine a plurality of sample data of the dimension generated by the target system in the same time period of the time period, and replace the feature value marked as abnormal by using a sum of a mean value and a random multiple of a variance of the plurality of feature values, as a sample for training the abnormality determination model (i.e., a mixed gaussian model).
Specifically, the server may calculate, instead of the sample data marked as abnormal, a plurality of sample data which are not marked as abnormal in the dimension and are generated by the target system in the same time period as the time period, and then the server may use a formula xkt anomaly=uNot abnormal kt+α·σNot abnormal ktRecalculating the eigenvalues that determined the flag to be abnormal, where xkt anomalyA recalculated value, u, representing the characteristic value of the flag as abnormalNot abnormal ktRepresenting the mean, σ, of a number of eigenvalues corresponding to this dimension that are not marked as anomaliesNot abnormal ktAnd a is a random number between zero and one, and represents the variance of a plurality of characteristic values which are not marked as anomalies and correspond to the dimension.
For example, for 12: in the sample data of the corresponding k dimension in the time period of 01 to 12 points 02, one is marked as abnormalSample data, assuming the current date is 2016, 12 and 31 days, the server can collect 12 of the target system at 2016, 12 and 20 days, 2016, 12 and 19 days, 2016, 12 and 4 days, 2016, 12 and 1 day: 01 to 12 points 02 generate 4 sample data of the k dimension which are not marked as abnormal and adopt a formula, xkt anomaly=uNot abnormal kt+α·σNot abnormal ktAnd calculating to obtain the numerical value of the sample data marked as abnormal in the sample data replacing the k dimension.
The server may randomly select a plurality of sample data which are not marked as abnormal from all the sample data of the dimension generated by the target system in the same time period, and the number of the sample data which are not marked as abnormal may be set by a worker.
Further, in order to reduce the operating pressure of the server, the server may randomly select a plurality of sample data of the dimension generated by the target system in the same time period of the time period, rather than being limited to performing calculation by acquiring sample data that is not marked as an exception, and replace the sample data marked as an exception with a calculation result.
Of course, for the sample data of a plurality of dimensions selected by the server, more restrictions, such as temporal restrictions, may also be added, which is not limited in this application.
By replacing the sample data marked as abnormal by the substitute numerical value obtained by calculating the plurality of sample data, the influence of the sample data marked as abnormal on the abnormal judgment model can be effectively reduced, the small probability interval corresponding to the abnormal judgment model can be more accurate, and the accuracy of the system abnormal monitoring method is increased.
Based on the method for monitoring system abnormality shown in fig. 1, the embodiment of the present application further provides a schematic structural diagram of a device for monitoring system abnormality, as shown in fig. 2.
Fig. 2 is a schematic structural diagram of a system anomaly monitoring device according to an embodiment of the present application, including:
a determining module 201, which collects at least one dimension characteristic value generated by the target system;
the calculation module 202 determines the probability of the target system being abnormal according to the feature values of the dimensions and the abnormal judgment model obtained through training;
the judging module 203 determines that the target system is abnormal when the probability is between the small probability intervals corresponding to the abnormal judgment models.
The judging module 203 sends out an alarm message when determining that the target system is abnormal.
The calculation module 202 acquires sample data of at least one dimension generated by the target system history, executes the following operation for the sample data of each dimension, trains and obtains an abnormality judgment submodel corresponding to the sample data of the dimension according to the sample data of the dimension, and fits and obtains the abnormality judgment model according to the obtained abnormality judgment submodel when obtaining the abnormality judgment submodel corresponding to the sample data of each dimension.
The calculation module 202 determines a time period, acquires sample data of the dimension generated in the time period, and trains to obtain an abnormal judgment sub-model corresponding to the dimension in the time period according to the sample data.
The calculation module 202 searches sample data of the dimension generated in the same time period as the time period from sample data generated in history of the target system, and uses the found sample data as a training sample of the abnormal judgment submodel corresponding to the time period.
The calculating module 202, when obtaining the abnormality judgment submodel corresponding to each dimension, assigns an initial weight value to the abnormality judgment submodel corresponding to each dimension, and performs the following operations for the initial weight values of the abnormality judgment submodels corresponding to each dimension, respectively: judging whether the initial weight value of the abnormal judgment submodel corresponding to the dimension converges or not, fitting to obtain an abnormal judgment model according to the initial weight value of each converged abnormal judgment submodel when the judgment result of the initial weight value of the abnormal judgment submodel corresponding to each dimension meets the convergence condition, and otherwise, adjusting the initial weight value of the abnormal judgment submodel corresponding to at least one dimension.
The calculating module 202 trains an initial weight value of the abnormal judgment sub-model corresponding to the dimension by using a maximum expectation algorithm, judges whether the weight value obtained by training the abnormal judgment sub-model corresponding to the dimension is converged, if so, takes the trained weight value as the weight value of the abnormal judgment sub-model corresponding to the dimension for fitting the abnormal judgment model, and if not, continues to train the weight value obtained by training the abnormal judgment sub-model corresponding to the dimension again until the weight value obtained by training the abnormal judgment sub-model corresponding to the dimension is converged.
Before the anomaly judgment submodel corresponding to the dimension in the time period is obtained through training, when sample data marked as anomaly exists in the obtained sample data of the dimension generated in the time period, the calculation module 202 obtains a plurality of sample data of the dimension generated by the target system in other time periods same as the time period, calculates the sum of the mean value and the variance of the obtained sample data of the dimension, and adjusts the sample data marked as anomaly in the dimension by using the sum, wherein the sum is used for training the anomaly judgment submodel corresponding to the dimension.
The determining module 201 determines, for the feature value of each dimension, an average value of sample data of the dimension in a plurality of time periods adjacent to the time period as the feature value of the dimension generated by the target system in the time period.
When the abnormal judgment model is a gaussian mixture model, the calculation module 202 determines a small probability interval corresponding to the abnormal judgment model according to a gaussian principle.
The dimensions include: the system calling quantity dimension, the system called quantity dimension, the system calling duration dimension, the error quantity dimension in the system and the calling quantity dimension of the system to the database.
Specifically, the system abnormality monitoring device shown in fig. 2 may be located in a server, and the server may be a single device or a system composed of multiple devices.
In the 90 s of the 20 th century, improvements in a technology could clearly distinguish between improvements in hardware (e.g., improvements in circuit structures such as diodes, transistors, switches, etc.) and improvements in software (improvements in process flow). However, as technology advances, many of today's process flow improvements have been seen as direct improvements in hardware circuit architecture. Designers almost always obtain the corresponding hardware circuit structure by programming an improved method flow into the hardware circuit. Thus, it cannot be said that an improvement in the process flow cannot be realized by hardware physical modules. For example, a Programmable Logic Device (PLD), such as a Field Programmable Gate Array (FPGA), is an integrated circuit whose Logic functions are determined by programming the Device by a user. A digital system is "integrated" on a PLD by the designer's own programming without requiring the chip manufacturer to design and fabricate application-specific integrated circuit chips. Furthermore, nowadays, instead of manually making an Integrated Circuit chip, such Programming is often implemented by "logic compiler" software, which is similar to a software compiler used in program development and writing, but the original code before compiling is also written by a specific Programming Language, which is called Hardware Description Language (HDL), and HDL is not only one but many, such as abel (advanced Boolean Expression Language), ahdl (alternate Hardware Description Language), traffic, pl (core universal Programming Language), HDCal (jhdware Description Language), lang, Lola, HDL, laspam, hardward Description Language (vhr Description Language), vhal (Hardware Description Language), and vhigh-Language, which are currently used in most common. It will also be apparent to those skilled in the art that hardware circuitry that implements the logical method flows can be readily obtained by merely slightly programming the method flows into an integrated circuit using 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, an Application Specific Integrated Circuit (ASIC), a programmable logic controller, and an embedded microcontroller, examples of which include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicone Labs C8051F320, the memory controller may also be implemented as part of the control logic for the memory. Those skilled in the art will also appreciate that, in addition to implementing the controller as pure computer readable program code, the same functionality can be implemented by logically programming method steps such that the controller is in the form of logic gates, switches, application specific integrated circuits, programmable logic controllers, embedded microcontrollers and the like. Such a controller may thus be considered a hardware component, and the means included therein for performing the various functions may also be considered as a structure within the hardware component. Or even means for performing the functions may be regarded as being both a software module for performing the method and a structure within a hardware component.
The systems, devices, modules or units illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product with certain functions. One typical implementation device is a computer. In particular, the computer may be, for example, a personal computer, a laptop computer, a cellular telephone, a camera phone, a smartphone, 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 divided into various units by function, and are described separately. Of course, the functionality of the units may be implemented in one or more software and/or hardware when implementing the present application.
As will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams 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 a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include forms of volatile memory in a computer readable medium, Random Access Memory (RAM) and/or non-volatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
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 computer storage media 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 that can be used to store information that can be accessed by a computing device. As defined herein, a computer readable medium does not include a transitory computer readable medium such as a modulated data signal and a carrier wave.
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 an … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The application 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 application 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.
The embodiments in the present specification are described in a progressive manner, and the same and similar parts among the embodiments are referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the system embodiment, since it is substantially similar to the method embodiment, the description is simple, and for the relevant points, reference may be made to the partial description of the method embodiment.
The above description is only an example of the present application and is not intended to limit the present application. Various modifications and changes may occur to those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the claims of the present application.