The present invention relates to anomaly prediction, and more particularly, evaluating and predicting risk in systems with a large number of sensors or components.
A Cyber-Physical System (CPS) is characterized by the deployment of a large number of sensors tasked with the surveillance of the system's operational status. Within the realm of CPS maintenance and operation, anomaly monitoring and detection is an important task. Nonetheless, the endeavor of anomaly detection in CPS applications confronts two major challenges: First, a considerable proportion of sensors in CPS environments convey categorical data not numerical measurements. Second, a substantial subset of anomalies manifests as event sequences of intricate interdependencies among multiple sensors, rather than being predicated upon the time series of individual ones.
Unfortunately, most existing anomaly detection methods are designed exclusively for the analysis of numerical sensor data, thereby rendering them incapable of modeling intricate relationships among categorical sensors. Consequently, their practical utility for real-time CPS monitoring tasks remains constrained.
Current risk assessment techniques can suffer from incomplete information due to lack of sensor data making their predictions inaccurate. In industries related to random or seemingly random events, e.g., natural disasters, stock prices, etc., a more complete set of information is needed to assess risk.
According to an aspect of the present invention, a computer-implemented method of creating a model includes converting historical data into categorical time series data and de-noising the categorical time series data by removing noisy transitions sets according to a coefficient of variation. A likelihood of a category transition is determined based on historical events using a Hawkes process to generate a relationship graph. Relationships between pairs of nodes are determined using the relationship graph, where the relationships indicate a degree of correlation between the nodes based on de-noised categorical time-series data. An anomaly threshold is determined based on anomaly scores for a validation dataset using the relationship graph, wherein a likelihood output of the Hawkes process that exceeds the anomaly threshold indicates an anomaly.
According to another aspect of the present invention, a system for event modeling includes a hardware processor and a memory that stores a computer program which, when executed by the hardware processor, causes the hardware processor to convert historical data into categorical time series data; de-noise the categorical time series data by removing noisy transitions sets according to a coefficient of variation; determine a likelihood of a category transition based on historical events using a Hawkes process to generate a relationship graph; determine relationships between pairs of nodes using the relationship graph, where the relationships indicate a degree of correlation between the nodes based on de-noised categorical time-series data; and determine an anomaly threshold based on anomaly scores for a validation dataset using the relationship graph, wherein a likelihood output of the Hawkes process that exceeds the anomaly threshold indicates an anomaly.
According to another aspect of the present invention, a computer program product for event modeling, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a hardware processor to cause the hardware processor to convert historical data into categorical time series data; de-noise the categorical time series data by removing noisy transitions sets according to a coefficient of variation; determine a likelihood of a category transition based on historical events using a Hawkes process to generate a relationship graph; determine relationships between pairs of nodes using the relationship graph, where the relationships indicate a degree of correlation between the nodes based on de-noised categorical time-series data; and determine an anomaly threshold based on anomaly scores for a validation dataset using the relationship graph, wherein a likelihood output of the Hawkes process that exceeds the anomaly threshold indicates an anomaly.
In other embodiments, numerical values can be mapped onto categorical values for the categorical time series data. A mean duration and standard deviation can be determined for an initial state of each transition set to calculate the coefficient of variation. The relationship graph can identify pair-wise relationship values for the nodes based on multiple types of input data. The multiple types of input data can include a relationship value based on a correlation of categorical time series data for a pair of nodes. The multiple types of input data can further include a distance between locations associated with the pair of nodes. The correlation of categorical time series data for the pair of nodes can be determined using a neural network model. The correlation of categorical time series data can be determined for the pair of nodes based on an occurrence of events in the time series data within a threshold time. A cyber-physical system (CPS) can be monitored to determine the anomaly.
These and other features and advantages will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.
The disclosure will provide details in the following description of preferred embodiments with reference to the following figures wherein:
In accordance with embodiments of the present invention, a tool to monitor and evaluate sequential events is described. In an embodiment, health of a cyber-physical system (CPS) can be monitored, based on categorical sensor relationships and sequential events. A multivariate Hawkes process-based categorical anomaly detection (MHPCAD) tool can enable the use of categorical data as well as numerical data to realize improved modeling and risk assessment. MHPCAD obtains a sensor relationship graph from historical normal data. MHPCAD trains the sequential event model based on the Hawkes process, automatically determining the normal score range and anomaly thresholds. MHPCAD can train the model offline and then apply the model on live streaming data for efficient online detection.
MHPCAD contributes to the efficient and effective management of CPS by MHPCAD which needs a limited parameter setting in advance (e.g., by a default setting), which can be applied to a wide variety of CPS. A sensor relationship graph model of MHPCAD can be employed to both detect anomalies and illustrate the anomalies in a visualized way to an end user. The MHPCAD uses normal data as training input, and does not need any anomalies to train the model. This makes normal sensor data much easier to collect in real CPS applications.
Embodiments described herein can address problems by analyzing sequential events among multiple categorical sensors. This enables, e.g., a CPS monitoring system to cover more categorical sensors with better detection sensitivity. While some of the present embodiments are described in the context of a CPS, it should be understood that they may be applied to any type of system that includes both categorical data and numerical data.
Embodiments of the present invention can be employed to generate accurate alerts on categorical sensor data and help end users understand the anomalies. The systems and methods can work on the categorical sensor readings, whereas most state-of-the-art anomaly detection methods work only on numerical sensor readings. The numerical sensors can be easily transformed to categorical sensors by pre-processing technologies such as z-score normalization. While difficult, categorical readings can also be transformed into numerical data.
In an embodiment, MHPCAD obtains a sensor relationship graph from historical normal data, trains the sequential event model based on the Hawkes process, automatically determines the normal score range and anomaly thresholds. MHPCAD can train the model offline, and then apply the model on streaming data for efficient online detection. MHPCAD contributes to the efficient and effective management of CPS by only needing limited parameter settings in advance (e.g., by default setting) and can be applied to a wide variety of CPS applications. The sensor relationship graph model of MHPCAD can be used to both detect anomalies and illustrate the anomalies in a visualized way to end user. MHPCAD only needs normal data as training input, it does not need any anomalies to train the model. Typically, the normal sensor data are much easier to collect in real CPS applications. The present embodiments address the anomaly detection problem by analyzing the sequential events among multiple categorical sensors. This enables the CPS monitoring system to cover more categorical sensors with better detection sensitivity.
In particularly useful embodiments, the systems and methods can generate a graph model based on event relationships and changes/transitions of sensor values. This graph model can be used to detect abnormal events and to illustrate the process of such events for anomaly diagnosis. Normal data may be employed as training input, so that data explicitly showing anomalies is not needed for training. This makes it easier to create training data, as anomalous events are rare in comparison to normal operations. The systems and methods can be applied to a large variety of applications with categorical data, e.g., automobile, air quality monitoring system, power plants, vehicles, satellites, insurance, etc.
Referring now in detail to the figures in which like-numerals represent the same or similar elements and initially to
One or more sensors 104 record information about the state of the monitored system 102. The sensors 104 can be any appropriate type of sensor including, for example, physical sensors, such as temperature, humidity, vibration, pressure, voltage, current, magnetic field, electrical field, light sensors, software sensors, such as logging utilities installed on a computer system to record information regarding the state and behavior of the operating system and applications running on the computer system. The sensor data may include, e.g., numerical data and categorical or binary-valued data. The sensor data may be stored as log information that records the occurrence of discrete events. The information generated by the sensors 104 can be in any appropriate format and can include sensor log information generated with heterogeneous formats.
In addition, the monitored system 102 may be an organic or geological system. For example, the monitored system 102 may be a human patient in a healthcare facility or livestock in an agricultural setting. In such examples, the sensors 104 may collect vital signs from the patient, such as heart rate, blood oxygen saturation, blood sugar, etc. Examples of categorical information that may be measured for an organic system include whether the subject is conscious or unconscious and whether the subject is physically active or is sedentary. The sensors 104 may collect vehicle status, speeding, braking habits, traffic conditions, etc.
In other examples, the monitored system 102 may be environmental, including geological, hydrological, or meteorological systems, such as a particular watershed, tectonic fault line, or weather system. Sensors 104 in such embodiments may monitor real-time information about the system, such as precipitation, humidity, and seismological activity. Categorical information for such systems may include, e.g., whether it is raining, the season, and features of the fault.
The sensors 104 may transmit the logged sensor information to a maintenance system 106 by any appropriate communications medium and protocol, including wireless and wired communications. The maintenance system 106 can, for example, identify abnormal or anomalous behavior by monitoring the multivariate time series and log information that are generated by the sensors 104. Once anomalous behavior has been detected, the maintenance system 106 communicates with a system control unit to alter one or more parameters of the monitored system 102 to correct the anomalous behavior.
Exemplary corrective actions include changing a security setting for an application or hardware component, changing an operational parameter of an application or hardware component (for example, an operating speed), halting and/or restarting an application, halting and/or rebooting a hardware component, changing an environmental condition, changing a network interface's status or settings, etc. The maintenance system 106 thereby automatically corrects, alerts of or mitigates the anomalous behavior. By identifying the particular sensors 104 that are associated with the anomalous classification, the amount of time needed to isolate a problem can be decreased.
In the context of an organic system, the corrective action may include the automatic adjustment of a treatment for a patient. For example, the maintenance system 106 may trigger the administration of medication or the cessation of a particularly harmful procedure. In the context of an environmental system, the corrective action may be to issue evacuation warnings in advance of a significant weather or seismological event.
Each of the sensors 104 may output a respective time series, which encodes measurements made by the sensor over time. The sensor data may be numerical or categorical in nature. For example, the time series may include pairs of information, with each pair including a measurement and a timestamp, representing the time at which the measurement was made. Each time series may be divided into segments, which represent measurements made by the sensor over a particular time range. Time series segments may represent any appropriate interval, such as one second, one minute, one hour, or one day. Time series segments may represent a set number of collection time points, rather than a fixed period of time, for example, covering 100 measurements. Whereas numerical data may be represented as a number value, such as an integer or floating point value, the categorical information may be encoded as an indication that the system is one of a predetermined number of states. The multivariate time series may include information relating to the occurrence of different types of event (e.g., represented by the outputs of different sensors 104) across a shared timeline.
The maintenance system 106 therefore includes a model that may be trained to handle numerical data and categorical data. For a complicated system 102, the number of sensors 104 may be very large, with the sensors reporting independent streams of time-series data.
The maintenance system 106 may further include risk assessment 110. Risk assessment 110 looks to the future behavior of the monitored system 102 to determine whether an anomaly is likely to occur. For example, certain conditions indicated by the sensor data may indicate that an anomaly will occur in the near or far future. In the case of an environmental system, this may indicate that a given location is likely to suffer damage from seismological or meteorological events, such as an earthquake or hurricane. In the case of an organic system, this may indicate that a patient is predisposed to a heart attack or certain types of cancer.
Anomaly detection and risk assessment 108 may make use of MHPCAD to handle categorical sensor data. Numerical data may be translated to categorical data for use by MHPCAD, thereby fusing both types of data for analysis. A graph model may be used based on event relationships and changes or transitions in sensor values. The graph model may detect and predict abnormal events and may illustrate the process of such events.
Training of an anomaly detection/prediction model may be performed on a set of historical data, which may include categorical data and numerical data that is taken during normal operation of a system. The data from categorical sensors may use different values to represent their respective operational states, and it can be challenging to identify relationships between such sensors based solely on their respective categorical values.
Further, the historical sensor data may include noise, which may exhibit dynamic and irregular variations in the durations of unique values. Additionally, there may be a large number of events, such as categorical value changes, in a given sensor's output over time. The computational complexity for handling N such events may be O(N2). As N may be very large, due to the number of different sensors and the potentially long duration of the historical data time series, computational efficiency can be a significant challenge.
Thus, the historical data may be pre-processed to improve the efficiency and effectiveness of the system. In particular, noisy data within the historical sensor data may be identified on a per-transition type basis, and data associated with transitions that are found to be noisy may be removed from the historical data. This produces input data which is less noisy and more compact. As a result, the computational burden of handling the smaller input dataset is correspondingly lowered, while the results are improved due to the reduction in noise. Thus the functioning of a computer system that operates on any such input data is improved in both its effectiveness and efficiency.
Referring now to
Transition data can therefore be generated for each sensor's data. MHPCAD generates a transition library for each categorical sensor. Points where the sensor value changes may be interpreted as transition points. Information can be tracked regarding the source value and target value of a transition. Using this transition library for each set of categorical sensor data, MHPCAD may group the transitions of each sensor into different sets. Each transition point in the transition sets includes two elements: transition type and the time of the transition.
The sensor data may include noise, which may exhibit dynamic and irregular variations in the durations of unique values. Additionally, there may be a large number of events, such as categorical value changes, in a given sensor's output over time. The computational complexity for handling N such events may be O(N2). As N may be very large, due to the number of different sensors and the potentially long duration of the historical data time series, computational efficiency can be a significant challenge.
Noisy data may be removed from the sensor outputs. Noise in categorical sensors may be dynamic and irregular in duration. For example, in a binary-valued sensor output, transitions from 0 to 1 may be regular and predictable, whereas the duration for which the system stays in the 1 state may be dynamic and irregular. Using the transition source value, transitions originating from the value 1 can be eliminated in this example, as they contribute to the noise of the data. Noisy data can have unpredictable effects in determining the likelihood of an anomaly, and so removal of the noisy data improves the accuracy of predictions.
Referring now to
Some sensors may generate numerical data, and some sensors may generate categorical data. Numerical data can be converted to categorical data by, e.g., identifying a range of values and setting ranges that define categories. Thus, for a range of values that varies between 1 and 100, the values may be binned in ranges of ten, such that any value between 1 and 10 is assigned to category 1, any value between 11 and 20 is assigned to category 2, and so on. Any other appropriate process for converting numerical data to categorical data may be used instead.
Block 302 removes noise from the sensor data, as noted above and as will be described in greater detail below. Block 304 then groups transition sets according to frequency to reduce temporal complexity. With N as the total number of events (e.g., categorical value transitions) from the sensors 104, the number N can be very large due to the number of sensors and monitoring time. The events can therefore be partitioned into groups according to their frequencies. If there are m groups with average size n, then N=mn. The relationships are retrieved for events inside each group. In this way, the time complexity is improved to O(mn2) or O(mN). If there are ten groups (m=10), the time cost is reduced by a factor of ten. Additional detail on the grouping of transition sets is provided below.
Block 306 builds a sensor relationship graph model and determines normal relationship ranges. The graph model is based on a multivariate Hawkes process. A Hawkes process is a multivariate point process model of mutually exciting processes that can be used to explain causal structure in data. The evolution of a multivariate Hawkes process depends on its entire history, and the process has a long memory property. This captures links between different sensor outputs. Additional details on the building the graph model are described below.
Block 308 evaluates the normal ranges for relationships and determines a threshold value for identifying anomalies. This process transfers validation data to groups of transition sets to calculate intensities of transition points. An anomaly score for each threshold is determined, so that an anomaly threshold can be generated. Additional details on the calculation of the anomaly threshold are described below.
The output of the model training process 300 includes the sensor relationship graph model and the anomaly threshold value. During training, sensor data is denoised 302 and transition sets are grouped 304. The relationship graph model is built for each transition group based on the multivariate Hawkes process approach. The transition set groups are applied to the trained Hawkes process models to evaluate a normal relationship range of each edge in the relationship graph models. Validation data is then used to calculate the threshold for the system-level anomaly score using the trained models.
During runtime, anomaly detection/prediction 310 is performed using the trained model(s) and the anomaly threshold. New data may be sampled from the sensors 104. As with the historical data, the newly sampled data may include both numerical data and categorical data, and the numerical data may be converted to categorical data by any appropriate process.
Block 312 generates transition set groups for the new data based on generated training transition set groups. Intensities may be determined for the transition points of each transition set in the groups. Block 314 then determines the anomaly score for each intensity, for example using the trained relationship graph models. The respective anomaly scores may be stored in an anomaly matrix.
Block 316 uses a sliding window to sample the anomaly score matrix, summing the anomaly scores in each window. If any summed anomaly score is larger than the threshold, then anomaly detection/prediction can generate an alert that an anomaly has been detected or predicted.
Based on the output of the anomaly detection/prediction 310, risk assessment 320 may be performed to determine what the appropriate response should be. For predicted anomalies, the risk assessment 320 may include a determination of how serious the consequences of the anomaly would be and a likelihood that the anomaly will occur. Block 330 may then trigger a responsive (or preventative) action relating to the detected or predicted anomaly.
Referring now to
Block 408 determines whether the ratio μd/σd, otherwise known as the coefficient of variation, is greater than a threshold value. The coefficient of variation is a measure of the stability of the durations for the transition set. If this value is large (e.g., greater than a variability threshold value), then the duration set of the selected unique value is not steady. In that case, block 410 removes the transition set from the list. Block 412 determines whether there are more transition sets to consider. If so, processing returns to block 402 where a next transition set is selected. If not, processing ends and the denoised data is output.
Referring now to
A Gaussian distribution corresponding to μf and σf may be determined, and may be split into a low-frequency regime, a medium frequency regime, and a high-frequency regime in block 504. The medium frequency regime may be defined as a region around the frequency mean μf according to μf±βσf, where β is an appropriate constant value. Transition sets in this range are regarded as being in the medium frequency regime, while transition sets having a frequency greater than μf±βσf are regarded as being in the high frequency regime and transition sets having a frequency lower than μf−βσf are regarded as being in the low frequency regime. Block 506 assigns transition sets into regimes in this manner.
Referring now to
where D is the number of transition sets in the transition set group, Ii are baseline intensities, ϕij are kernels of the Hawkes process model
where tkj are the timestamps of all transition points of transition set j, and i∈[1, . . . , D], c and d are coefficients determined in accordance with initial conditions and application.
Block 606 determines a mean intensity μI and standard deviation σI for each intensity set in the group. Block 608 then determines a normal range for each intensity set, for example, defined as the range [μI−ασI, μ+ασI], where α is a constant value.
If block 610 determines that there is another transition set group to consider, processing returns to block 602 where a next transition set group is selected. If not, processing ends.
Referring now to
where b represents a given intensity, r=[l, u] represents the normal range of b, with l being the lower bound and u being the upper bound.
Block 708 uses a sliding window to sample the anomaly scores, summing the anomaly scores in each window. Block 710 then determines a threshold for the system-level anomaly score based on the summed anomaly scores:
where μa is a mean of the summed anomaly scores, σa is the standard deviation of the summed anomaly scores, and ρ is a constant value.
Referring to
Consider two time series shown in
The relationship factor (Re) of even time series can be computed as follows:
where P1, P2 are the two entities (nodes in the graph), Ei(P1) and Ei(P2) are the ith event time series of the two entities. |Ei(P1)| and |Ei(P2)| are the total number of events in the time series. The overall relation factor is the sum of all the sub-factors from each time series.
In some embodiments, the relationship between two time series may instead be identified using a machine learning model. For example, correlations may be identified using a neural network 806 that is trained in an unsupervised manner on a significant volume of historical data. Thus, even in contexts where events may not occur within the time threshold θt, there may nonetheless be behavior that is connected between different time series. As an example, the barometric pressure in a first location may correlate with precipitation in second location, even if the first location does not receive any rain.
In block 804, relationship factors from other data are computed. These other relationships can also employ the neural network 806. Another factor in relationship building can be, e.g., spatial location. In the example, for two positions P1 and P2, their distance can be computed, where the relationship factor of distance (Rm) can be computed by:
where the net_dist(P1, P2) is the distance (e.g., network distance) between the two positions.
In block 808, an overall relationship factor is computed to generate a graph. After computing the sub-factors, the overall relationship factor can be computed as follows: R(P1, P2)=a*Re(P1, P2)+b*Rm(P1, P2)+c*Rg(P1, P2) where a, b and c are three hyper-parameters that define relative weights for the contribution of each relationship value to the overall relationship. The hyper-parameters can be defined as 0.33 (e.g., specifying a mean, which may be the default value for three sub-factors), or may be adjusted by the end user based on their preference. It should be understood that while three sub-factors are described, any number of sub-factors can be incorporated into a model in accordance with the present embodiments, each sub-factor capturing a different type of data.
With the overall relationship factor computed, a relationship graph is determined in block 810, as follows: (1) graph nodes are selected as entities, e.g., positions in a certain region or other values; (2) for each pair of entities, e.g., P1 and P2, the relationship R(P1, P2) between the pair is computed. If the relationship score is larger than a threshold, an edge will be constructed between them; and (3) all the nodes and edges are output after checking all the pairs.
Referring to
In an embodiment, memory devices 903 can store specially programmed software modules to transform the computer processing system into a special purpose computer configured to implement various aspects of the present invention. In an embodiment, special purpose hardware (e.g., Application Specific Integrated Circuits, Field Programmable Gate Arrays (FPGAs), and so forth) can be used to implement various aspects of the present invention.
In an embodiment, memory devices 903 store program code for implementing one or more functions of a MHPCAD tool 1000, as described herein. The memory devices 903 can store program code for implementing one or more functions of the neural network 806. In one embodiment, memory devices 903 store program code for event series generation, relation graph generation, risk factor estimation and conducting actions responsive to these and other inputs (e.g., anomaly detection, failure prediction, etc.).
Of course, the processing system 900 may also include other elements (not shown), as readily contemplated by one of skill in the art, as well as omitting certain elements. For example, various other input devices and/or output devices can be included in processing system 900, depending upon the particular implementation of the same, as readily understood by one of ordinary skill in the art. For example, various types of wireless and/or wired input and/or output devices can be used. Moreover, additional processors, controllers, memories, and so forth, in various configurations can also be utilized. These and other variations of the processing system 900 are readily contemplated by one of ordinary skill in the art given the teachings of the present invention provided herein.
Moreover, it is to be appreciated that various figures as described below with respect to various elements and steps relating to the present invention that may be implemented, in whole or in part, by one or more of the elements of system 900.
Embodiments described herein may be entirely hardware, entirely software or including both hardware and software elements. In a preferred embodiment, the present invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Embodiments may include a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. A computer-usable or computer readable medium may include any apparatus that stores, communicates, propagates, or transports the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be magnetic, optical, electronic, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. The medium may include a computer-readable storage medium such as a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk, etc.
Each computer program may be tangibly stored in a machine-readable storage media or device (e.g., program memory or magnetic disk) readable by a general or special purpose programmable computer, for configuring and controlling operation of a computer when the storage media or device is read by the computer to perform the procedures described herein. The inventive system may also be considered to be embodied in a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner to perform the functions described herein.
A data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code to reduce the number of times code is retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) may be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
As employed herein, the term “hardware processor subsystem” or “hardware processor” can refer to a processor, memory, software or combinations thereof that cooperate to perform one or more specific tasks. In useful embodiments, the hardware processor subsystem can include one or more data processing elements (e.g., logic circuits, processing circuits, instruction execution devices, etc.). The one or more data processing elements can be included in a central processing unit, a graphics processing unit, and/or a separate processor- or computing element-based controller (e.g., logic gates, etc.). The hardware processor subsystem can include one or more on-board memories (e.g., caches, dedicated memory arrays, read only memory, etc.). In some embodiments, the hardware processor subsystem can include one or more memories that can be on or off board or that can be dedicated for use by the hardware processor subsystem (e.g., ROM, RAM, basic input/output system (BIOS), etc.).
In some embodiments, the hardware processor subsystem can include and execute one or more software elements. The one or more software elements can include an operating system and/or one or more applications and/or specific code to achieve a specified result.
In other embodiments, the hardware processor subsystem can include dedicated, specialized circuitry that performs one or more electronic processing functions to achieve a specified result. Such circuitry can include one or more application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and/or programmable logic arrays (PLAs).
These and other variations of a hardware processor subsystem are also contemplated in accordance with embodiments of the present invention.
Reference in the specification to “one embodiment” or “an embodiment” of the present invention, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment”, as well any other variations, appearing in various places throughout the specification are not necessarily all referring to the same embodiment. However, it is to be appreciated that features of one or more embodiments can be combined given the teachings of the present invention provided herein.
It is to be appreciated that the use of any of the following “/”, “and/of”, and “at least one of”, for example, in the cases of “A/B”, “A and/or B” and “at least one of A and B”, is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of “A, B, and/or C” and “at least one of A, B, and C”, such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C). This may be extended for as many items listed.
The foregoing is to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the invention disclosed herein is not to be determined from the Detailed Description, but rather from the claims as interpreted according to the full breadth permitted by the patent laws. It is to be understood that the embodiments shown and described herein are only illustrative of the present invention and that those skilled in the art may implement various modifications without departing from the scope and spirit of the invention. Those skilled in the art could implement various other feature combinations without departing from the scope and spirit of the invention. Having thus described aspects of the invention, with the details and particularity required by the patent laws, what is claimed and desired protected by Letters Patent is set forth in the appended claims.
This application claims priority to U.S. Patent Application No. 63/591,540, filed on Oct. 19, 2023, incorporated herein by reference in its entirety. This application is related to U.S. patent application Ser. No. 18/619,802 filed on Mar. 28, 2024, U.S. patent application Ser. No. 18/619,851 filed on Mar. 28, 2024, and U.S. patent application Ser. No. 18/619,872 filed on Mar. 28, 2024.
Number | Date | Country | |
---|---|---|---|
63591540 | Oct 2023 | US |