Embodiments of the present disclosure relate generally to systems and methods for developing predictive bit wear models for earth-boring tools.
Wellbores are formed in subterranean formations for various purposes including, for example, extraction of oil and gas from the subterranean formation and extraction of geothermal heat from the subterranean formation. Wellbores may be formed in a subterranean formation using earth-boring tools, such as an earth-boring rotary drill bit. The earth-boring rotary drill bit is rotated and advanced into the subterranean formation. As the earth-boring rotary drill bit rotates, the cutting elements, cutters, or abrasive structures thereof cut, crush, shear, and/or abrade away the formation material to form the wellbore.
The earth-boring rotary drill bit is coupled, either directly or indirectly, to an end of what is referred to in the art as a “drill string,” which comprises a series of elongated tubular segments connected end-to-end that extends into the wellbore from the surface of earth above the subterranean formations being drilled. Various tools and components, including the drill bit, may be coupled together at the distal end of the drill string at the bottom of the wellbore being drilled. This assembly of tools and components is referred to in the art as a “bottom-hole assembly” (BHA).
Additionally, various machine learning techniques may be used to classify, interpret, or generate data by training a machine-learning based model. A machine learning based model may be given an input and a desired output and may then extract patterns from the data to “learn” how to achieve the desired output given the input data. For example, one type of machine learning involves the use of neural networks. A neural network may include layers of nodes, an input layer, one or more hidden layers, and an output layer. Each node of a neural network may be configured to communicate with one or more other nodes of the neural network based on the input, one or more parameters of a given node, and weights assigned to those parameters to generate an output. During a training process, the neural network may automatically adjust the parameter values or weights associated with the parameter values based on provided desired outputs to better achieve a desired output given an input.
One example of a machine learning model may include an encoder-decoder model. An encoder-decoder model may include two neural networks. For example, a first neural network (the “encoder”) of an encoder-decoder model may take data as input and output a latent space representation of the input by extracting and representing identified features of the input. The second neural network (the decoder) may take the output of the first neural network as an input to produce a decoded output. For example, an encoder-decoder model may be used to translate a sentence from one language to a different language. As a specific example, a sentence in English may be input to an encoder-decoder model trained to translate English to German. The encoder part of the model may then extract one or more features from the input to produce a latent space representation of that input. The decoder part of the model may then take as input this latent space representation to produce a translated sentence in German that is based on the input.
Some embodiments of the present disclosure include an earth-boring tool system. The earth-boring tool system may include a drill string comprising at least one drilling tool, one or more sensors configured to sense wear of the at least one drilling tool, at least one processor, at least one non-transitory computer readable storage medium storing instructions thereon that, when executed by the at least one processor, cause the earth-boring tool system to receive first drilling data including field drilling data, logging while drilling (LWD) data and data indicative of wear of at least part of the at least one drilling tool, train at least one predictive bit wear model for predicting one or more dull states of the at least one drilling tool based, at least in part, on the first drilling data, the predictive bit wear model configured to encode the first drilling data into a latent space representation of the first drilling data, fit a wear trajectory regression curve to the latent space representation of the first drilling data, and generate one or more predicted dull states of the at least one drilling tool based, at least in part, on the predictive bit wear model and the wear trajectory regression curve.
Further embodiments of the present disclosure include a method for obtaining a bit wear model. The method may include receiving first drilling data from an earth-boring tool system, the first drilling data including field drilling data, logging while drilling (LWD) data and data indicative of wear of at least part of the at least one drilling tool, training at least one predictive bit wear model for predicting one or more dull states of the at least one drilling tool based, at least in part, on the first drilling data, the predictive bit wear model configured to encode the first drilling data into a latent space representation of the first drilling data, generating one or more similarity scores responsive to comparing the latent space representation of the first drilling data to target drilling data, and filtering the latent space representation of the first drilling data responsive to the one or more similarity scores.
Further embodiments of the present disclosure may include a non-transitory computer readable storage medium storing instructions thereon that, when executed by the at least one processor, cause the earth-boring tool system to receive first drilling data including field drilling data, logging while drilling (LWD) data, and data indicative of wear of at least part of the at least one drilling tool, training at least one predictive bit wear model for predicting one or more dull states of the at least one drilling tool based, at least in part, on the first drilling data, the predictive bit wear model configured to encode the first drilling data into a latent space representation of the first drilling data, generating one or more similarity scores responsive to comparing the latent space representation of the first drilling data to target drilling data, filtering the latent space representation of the first drilling data responsive to the one or more similarity scores, fitting a wear trajectory regression curve to the filtered latent space representation of the first drilling data, and generating one or more predicted dull states of the at least one drilling tool based, at least in part, on the predictive bit wear model and the wear trajectory regression curve.
While this disclosure concludes with claims particularly pointing out and distinctly claiming specific examples, various features and advantages of examples within the scope of this disclosure may be more readily ascertained from the following description when read in conjunction with the accompanying drawings, in which:
Downhole drilling operations may involve the use of an earth-boring tool at the end of a long string of pipe commonly referred to as a drill string. An earth-boring tool may be used for drilling through subterranean formations, such as rock, dirt, sand, tar, etc. In some cases, the earth-boring tool may be configured to drill through additional elements that may be present in a wellbore, such as cement, casings (e.g., a wellbore casing), discarded or lost equipment (e.g., fish, junk, etc.), packers, etc. Each element will cause various parts of the earth-boring tool to wear or break down from the act of drilling through them. As various parts of the earth-boring tool wears down, it becomes increasingly likely that at least a part of the earth-boring tool will break, which may sometimes lead to part of, or all of an earth-boring tool being dislodged from the drill string and becoming irretrievably lost within the wellbore. This may result in significant losses of time as well as the loss expensive equipment which may both reduce the efficiency of the drilling operation and require complete replacement of expensive drilling equipment.
Accordingly, to prevent earth-boring tools from wearing down to the point of breaking within a wellbore, an machine learning based bit wear model may be provided to predict the wear of an earth-boring tool so that the tool can be repaired or replaced before breaking within a wellbore. Moreover, by creating a bit wear model, various operating parameters of the drill string may be optimized to reduce wear on the earth-boring tool during operation and maximize the drilling distance of the earth-boring tool before at least part of the earth-boring tool must be repaired or replaced. Typically, this bit wear model may be created by using field data collected from real-time field trials. However, because of physical constraints, it is difficult to measure the wear of an earth boring tool outside of the first few feet of the wellbore. Thus, for a run with several hundreds or thousands of feet of drilling distance, the measured field data may be limited to the initial and final few feet of the entire drilling operation. For example, field data is typically limited to a sharp beginning state of the earth-boring tool (e.g., the first few feet when the earth-boring tool drills into the earth) and an end dull state (e.g., the last few feet after the drill has bored into the earth and is being removed from the wellbore. Moreover, the field data may exhibit large amounts of noise (e.g., sharp variations in detected wear) or be of poor quality (e.g., may exhibit inaccuracies in measurements) which may lead to an inconsistent bit wear model that jumps between sharp and dull prediction states over the predicted length of the wellbore hole making it difficult to predict wear or to optimize various parameters of the drill string to maximize efficiency of the drilling operation.
In accordance with this disclosure, an earth-boring tool system may use a machine-learning based bit wear model for predicting the wear of an earth-boring tool by using a bit wear trajectory regression curve algorithm to improve the stability and accuracy of predictions made by the bit wear model. For example, the earth-boring tool system may calculate a bit wear trajectory regression curve based on the data used to train the bit wear model. When using the bit wear model to make subsequent predictions based on new drilling data, the earth-boring tool system may encode the new drilling data into latent space, project the latent space representation of the new drilling data onto the bit wear trajectory regression curve and then decode the latent space representation of the projected new drilling data to make a bit wear prediction. Because the earth-boring tool system of the present disclosure is able to project input data of the bit wear model onto the bit wear trajectory regression curve, the earth-boring tool system is advantageous over conventional bit wear model generation systems. For instance, by projecting the latent space representation of input data onto a regression curve fitted to training data, the bit wear model may produce more stable and reliable results by eliminating outlier predictions that may have resulted from poor data quality or field data noise in the data used to train the bit wear model while still respecting and implementing the results of the data used to train the bit wear model. The ability to produce this more accurate, reliable, and stable prediction model may allow for more efficient drilling operations and may help to prevent loss of expensive down-hole equipment.
Stated another way, the earth-boring tool system of the present disclosure is advantageous over conventional earth-boring tool systems because the earth-boring tool system enables a bit wear model to be trained based on measured field data and to have a bit wear trajectory regression curve fitted to the training data to improve the reliability and stability of bit wear predictions. For instance, the model may be based, at least in part, on an encoder-decoder model. Once the model has been trained, the earth-boring tool system may receive new drilling data (e.g., real time drilling data). This new drilling data may be mapped to a latent space defined by the trained bit wear model. A smooth bit wear regression curve may then be calculated based on the data represented in latent space that was used to train the model. The new drilling data may then be projected onto the regression curve. The projected drilling data may then be “decoded” by the bit wear model to generate a bit wear prediction. Accordingly, because of the increased stability and reliability of the bit wear model, the earth-boring tool system may optimize one or more drilling parameters based on the bit wear model to increase the performance of one or more drilling tools included in the earth-boring tool system. For instance, the earth-boring tool system may optimize various parameters of one or more drilling tools to enable to drilling tools to increase the amount of time a drilling tool is able to perform before the tool must be repaired or replaced due to wear caused by the operation of the drilling tool compared to conventional systems.
The sensors 114 may be configured to collect information regarding the earth-boring tool 112, such as tool temperature, cutter temperature, cutter wear, weight on bit (WOB), torque on bit (TOB), string rotational speed (RPM), and the wear (e.g., degradation, dulling, or damage) of at least part of the earth-boring tool 112. The information collected by the sensors 114 may be processed, stored, and/or transmitted by the sensor module 116. For example, the sensor module 116 may receive the information from the sensors 114 in the form of raw data, such as a voltage (e.g., 0-10 VDC, 0-5 VDC, etc.), an amperage (e.g., 0-20 mA, 4-20 mA, etc.), or a resistance (e.g., resistance temperature detector (RTD), thermistor, etc.). The sensor module 116 may process raw sensor data and transmit the data to the surface on a communication network, using a communication network protocol to transmit the raw sensor data. The communication network may include, for example a communication line, mud pulse telemetry, electromagnetic telemetry, wired pipe, etc. In some embodiments, the sensor module 116 may be configured to run calculations on raw sensed data such as, for example, calculating various signs of wear and/or damage to the earth-boring tool 112 relative to a known undamaged, unworn, or initial state of the earth-boring tool 112.
Though shown in
In some embodiments, the downhole information may be transmitted to the operator at the surface or to a computing device at the surface. For example, the downhole information may be provided to the operator through a display, a printout, etc. In some embodiments, the downhole information may be transmitted to a computing device that may process the information and provide the information to the operator in different formats useful to the operator. For example, measurements that are out of range may be provided in the form of alerts, warning lights, alarms, etc., some information may be provided live in the form of a display, spreadsheet, etc., whereas other information that may not be useful until further calculations are performed may be processed and the result of the calculation may be provided in the display, print out, spreadsheet, etc. In some embodiments, the sensor 114 may be configured to capture image data representative of various parts of the earth-boring tool 112 and provide the image data to the display. An operator may then manually measure, calculate, or otherwise obtain wear parameters of the earth-boring tool 112 based on the provided image data or other data collected by the sensor 114.
In some embodiments, the information sensed by the sensor 114 may be used to generate one or more bit wear models indicative of the predicted wear states of the earth-boring tool 112 over distance drilled in the formation 122. In some embodiments, the one or more bit wear models may be used to determine when at least part of the earth-boring tool 112 should be repaired or replaced. In additional embodiments, the one or more bit wear models may be used to optimize various operating parameters of the drill string for a drilling operation. For example, the earth-boring tool system 100 may automatically adjust one or more drilling parameters including, but not limited to, one or more of rate of penetration (ROP), drilling fluid flow rate, weight on bit (WOB), rotations per minute (RPM), well geometry, drilling fluid composition, etc. responsive to the generated bit wear model. In additional embodiments, the earth-boring tool system 100 may provide to the display one or more recommendations for changes to one or more drilling parameters responsive to the generated bit wear model. An operator may then approve one or more of the one or more recommendations or may manually change one or more drilling parameters based, at least part, on the recommendations.
The earth-boring tool system 100 may also include a processor and memory (discussed in more detail with regard to
In some embodiments, drilling data may be obtained via one or more sensors (e.g., sensor 114). For example, the one or more sensors maybe disposed along the length of a wellbore such that, when a drilling tool (e.g., earth-boring tool 112) passes through or is retrieved from the wellbore, the one or more sensors may capture or otherwise obtain data indicative of wear of at least part of the drilling tool. The one or more sensors may also be disposed on the drilling tool or on other parts included in the earth-boring tool system 100 so long as the one or more sensors are able to detect wear of at least part of at least one drilling tool (e.g., earth-boring tool 112). The one or more sensors may also detect field drilling data and LWD data during a drilling operation. In some embodiments, the one or more sensors may capture image data of the drilling tool and communicate (e.g., via sensor module 116), the image data to an operator. In some embodiments the one or more sensors may be configured to measure the wear state of the drilling tool relative to a known undamaged, unworn, or initial state of the drilling tool. In some embodiments, the data indicative of wear may be acquired manually. For example, an operator may measure the wear of a drilling tool at various points during a drilling operation. The operator may then provide to the earth-boring tool system 100 with the data the operator collected in the form of data indicative of wear of at least part of at least one drilling tool. In some embodiments, the first drilling data may be based, at least in part, on historical drilling data captured during previous drilling operations and stored for retrieval by the earth-boring tool system 100.
At operation 204, the earth-boring tool system 100 may train at least one predictive bit wear model for predicting one or more dull states of at least one drilling tool of the earth-boring tool system 100 based, at least in part, on the first drilling data. The at least one predictive bit wear model may be configured to encode the first drilling data into a latent space representation of the first drilling data. For example, the first drilling data may include labeled bit wear data such that, when the at least on predictive bit wear model generates a predicted bit wear state based on an input, the predicted bit wear state may be compared to the actual labeled bit wear state that corresponds to the input. The at least one predictive bit wear model may then automatically change one or more properties of the model responsive to the comparison.
As a non-limiting example, the at least one predictive bit wear model may be in the form of an encoder-decoder model that accepts the first drilling data (e.g., field drilling data or LWD data) as input and maps features of the first drilling data to a latent space representation of the first drilling data, as discussed above in operation 206. The at least one predictive bit wear model may then decode the latent space representation of the first drilling data to generate one or more predicted bit wear states of a drilling tool based on the output of the encoder. The earth-boring tool system 100 may then compare the one or more predicted bit wear states with the labeled bit wear data to generate a “closeness” score. If the closeness score is outside of an acceptable range, the decoder may automatically change one or more parameters or one or more weights associated with the one or more parameters at one or more nodes of the decoder and then use the first drilling data (e.g., the filtered latent space representation of the first data) to generate another prediction. This process may be repeated until the closeness score is within an acceptable range. In some embodiments, the decoder may be a trained machine learning model such as XGboost/SVM, or based on minimum distance, or any other conventional classification method using. For example, the decoder may be trained based on labeled data included in the first drilling data.
At operation 208, the earth-boring tool system 100 may compare the latent space representation of the first drilling data to target data (e.g., target data 222) to generate one or more similarity scores. For example, the target data 222 may be representative of field drilling data, bit wear data, or historic LWD data corresponding to drilling operations similar to a drilling operation yet to be undertaken. For example, the field drilling data, bit wear data, or historic LWD data may relate to properties of the formation to be drilled into. In some embodiments, the target data may be included in the first drilling data (e.g., a subset of the first drilling data). This target drilling data may be mapped to a latent space representation of the target drilling data using the at least one predictive bit wear model to be compared to the latent space representation of at least part of the first drilling data (e.g., one or more subsets of the first drilling data) to generate one or more similarity scores. For example, the first drilling data may include data representative of various parameters (e.g., formation properties) of one or more historical or simulated drilling operations. The target data may be compared to the first drilling data (e.g., one or more subsets of the first drilling data) in each dimension of the latent space. For example, in a latent space defined by dimensions Z1 and Z2, the earth-boring tool system 100 may compare the latent space distribution of the target data over Z1 to the latent space distribution of the first drilling data over Z1 and calculate the similarity between the two distributions. This process may be repeated for the Z2 dimension and for each dimension defining the latent space. This process may then also be repeated for each drilling operation represented in the first drilling data. For instance, the first drilling data may include data from a plurality of drilling operations. The target data 222 parameter distributions over each dimension of the latent space may then be compared to the distributions over each dimension of the latent space for each drilling operation of the represented plurality of drilling operations to calculate a similarity score for each respective drilling operation of the represented plurality of drilling operations.
After each distribution for a respective drilling operation has been compared to the distributions for the target data, a similarity score for the drilling operation represented in latent space may be calculated. This similarity score may then be used to filter the data correlating to the drilling operations represented in latent space to keep the data of the drilling operations that fall within a predetermined threshold of closeness to the target data where each drilling operation of the first drilling data may have a correlating calculated similarity score quantifying the similarity between the respective drilling operation data and the target data. After one or more similarity scores have been calculated, the earth-boring tool system 100 may then filter the latent space representation of the first drilling data to include the data from the one or more historical or simulated drilling operations that are within a closeness threshold relative to the target data 222 (e.g., closest 5, 10, 50, 100, or any other number of drilling operations represented in the latent space representation of the first drilling data), as shown in operation 210. In some embodiments, the earth-boring tool system 100 may filter the first drilling data responsive to the one or more similarity scores have been calculated. As a non-limiting example, the earth-boring tool system 100 may filter one or more data subsets of the first drilling data and use the filtered first drilling data to train the at least one predictive bit wear model. In this example, the at least one predictive bit wear model may map the first drilling data to a latent space representation of the first drilling data, but not use the first drilling data to train the at least one predictive bit wear model until the first drilling data has been filtered responsive to the one or more similarity scores.
At operation 212, the earth-boring tool system 100 may receive second drilling data via the one or more sensors. Though shown in flowchart 200 as occurring after operation 210, the present disclosure is not so limited. As one non-limiting example, the earth-boring tool system 100 may receive the second drilling data before generating one or more similarity scores based on the target data 222. In this example, the second drilling data may include the target data (e.g., as a subset of the second drilling data). The second drilling data may include field drilling data, LWD data, and data indicative of wear of at least part of the at least one drilling tool. The second drilling data may be indicative of data captured by the earth-boring tool system 100 in real time during operation of the earth-boring tool system. For example, the second drilling data may be received as described above with regard to the first drilling data via the sensors 114.
At operation 214, the earth-boring tool system 100 may fit a wear trajectory regression curve to the latent space representation of data used to train the at least one predictive bit wear model (e.g., the filtered latent space representation of the first drilling data). For example, the wear trajectory regression curve may define a smoothed curve that fits the data (e.g., the field drilling data and the LWD data of the first drilling data) that has been mapped into latent space. At operation 216, the earth-boring tool system 100 may apply the at least one predictive wear model to encode the second drilling data to a latent space representation of the second drilling data. At operation 218, the earth-boring tool system 100 may then project the latent space representation of the second drilling data onto the wear trajectory regression curve. For example, the earth-boring tool system 100 may project the latent space representation of the second drilling data onto a point of the trajectory regression curve that is closest to the latent space representation of the second drilling data. Stated another way, the latent space representation of the second drilling data may be projected onto a point located on the trajectory regression curve that is the shortest distance in latent space between the latent space representation of the second drilling data and the trajectory regression curve.
In some embodiments, the latent space representation of the second drilling data may be projected onto the trajectory regression curve responsive to the latent space representation of the second drilling data exceeding a predetermined threshold. For example, the earth-boring tool system 100 may project the latent space representation of the second drilling data if the latent space representation of the second drilling data exceeds a predetermined distance in latent space from the trajectory regression curve (e.g., a distance in latent space between the latent space representation of the second drilling data and a closest point on the trajectory regression curve). In this example, the earth-boring tool system 100 may not project the latent space representation of the second drilling data onto the trajectory regression curve if the latent space representation of the second drilling data is within the predetermined distance from the trajectory regression curve.
At operation 220, the earth-boring tool system 100 may generate one or more predicted dull states of at least one drilling tool responsive to the projected latent space representation of the drilling data. For example, the earth-boring tool system 100 may decode, via the at least one predictive bit wear model, the projected latent space representation of the second drilling data to generate at least one predicted dull state of the at least one drilling tool. In some embodiments, the at least one predicted dull state of the at least one drilling tool may be in the form of a wear vs drilling depth curve or gradient representing a predicted wear of at least one drilling tool of the earth-boring tool system 100 as a function of drilling depth of the at least one drilling tool.
Additionally, in one or more embodiments, the earth-boring tool system 100 may generate a warning indicative of a need to replace at least part of the at least one drilling tool responsive to the generated at least one predicted dull state of the at least one drilling tool. For example, the predictive bit wear model may be configured to predict a depth at which one or more drilling tools is at an increased risk of failure, excessive damage, or when a drilling tool requires replacement to mitigate these risks. As a specific, non-limiting example, the earth-boring tool system 100 may detect when a drilling tool has reached a depth that is indicated by the generated at least one predicted dull state of the at least one drilling tool to have exceeded a predetermined threshold for wear. The earth-boring tool system 100 may then generate a warning that at least part of the at least one drilling tool need to be replaced or repaired to prevent tool failure or excessive damage. In some embodiments, the earth-boring tool system may then provide to an operator via a display of the earth-boring tool system, the generated warning.
In some embodiments, the earth-boring tool system 100 may then automatically change one or more operational drilling parameters of the drill string 102 responsive to detecting the increased risk of failure or excessive damage. For example, the earth-boring tool system 100 may change one or more operational drilling parameters known to reduce the likelihood of damage to at least one drilling tool (e.g., earth-boring tool 112). As a specific non-limiting example, when the earth-boring tool system 100 detects that one or more drilling tools has reached a depth where the at least one predicted bit wear state indicates that the wear of one or more drilling tools will have crossed a predetermined threshold, the earth-boring tool system may cease drilling operations unless manually overridden by an operator. For example, the warning displayed to an operator may include a selectable option to override the warning where, if the warning is not overridden, the earth-boring tool system 100 may cease operations after a predetermined length of time has elapsed. If, however, the operator selects the override option before expiration of the predetermined length of time, the earth-boring tool system 100 may continue operation uninterrupted. The earth-boring tool system 100 may also display, along with the warning, a selectable option to immediately cease drilling operations or to modify one or more drilling operations. Furthermore, the earth-boring tool system 100 may also present, with the warning, one or more recommendations. For example, the one or more recommendations may recommend changing one or more operational drilling parameters of the drill string 102 as well as recommended values. An operator may then, upon selecting the option to modify the operational drilling parameters of the drill string, select to implement the recommended values or manually input different values.
It will be appreciated by those of ordinary skill in the art that functional elements of examples disclosed herein (e.g., functions, operations, acts, processes, and/or methods) may be implemented in any suitable hardware, software, firmware, or combinations thereof.
When implemented by logic circuitry 308 of the processors 302, the machine executable code 306 is to adapt the processors 302 to perform operations of examples disclosed herein. For example, the machine executable code 306 may adapt the processors 302 to perform at least a portion or a totality of the operation 200 of
The processors 302 may include a general purpose processor, a special purpose processor, a central processing unit (CPU), a microcontroller, a programmable logic controller (PLC), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, other programmable device, or any combination thereof designed to perform the functions disclosed herein. A general-purpose computer including a processor is considered a special-purpose computer while the general-purpose computer executes functional elements corresponding to the machine executable code 306 (e.g., software code, firmware code, hardware descriptions) related to examples of the present disclosure. It is noted that a general-purpose processor (may also be referred to herein as a host processor or simply a host) may be a microprocessor, but in the alternative, the processors 302 may include any conventional processor, controller, microcontroller, or state machine. The processors 702 may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
In some examples the storage 304 includes volatile data storage (e.g., random-access memory (RAM)), non-volatile data storage (e.g., Flash memory, a hard disc drive, a solid state drive, erasable programmable read-only memory (EPROM), etc.). In some examples the processors 302 and the storage 304 may be implemented into a single device (e.g., a semiconductor device product, a system on chip (SOC), etc.). In some examples the processors 302 and the storage 304 may be implemented into separate devices.
In some examples the machine executable code 306 may include computer-readable instructions (e.g., software code, firmware code). By way of non-limiting example, the computer-readable instructions may be stored by the storage 304, accessed directly by the processors 302, and executed by the processors 302 using at least the logic circuitry 308. Also by way of non-limiting example, the computer-readable instructions may be stored on the storage 304, transferred to a memory device (not shown) for execution, and executed by the processors 302 using at least the logic circuitry 308. Accordingly, in some examples the logic circuitry 308 includes electrically configurable logic circuitry 308.
In some examples the machine executable code 306 may describe hardware (e.g., circuitry) to be implemented in the logic circuitry 308 to perform the functional elements. This hardware may be described at any of a variety of levels of abstraction, from low-level transistor layouts to high-level description languages. At a high-level of abstraction, a hardware description language (HDL) such as an IEEE Standard hardware description language (HDL) may be used. By way of non-limiting examples, VERILOG™, SYSTEMVERILOG™ or very large scale integration (VLSI) hardware description language (VHDL™) may be used.
HDL descriptions may be converted into descriptions at any of numerous other levels of abstraction as desired. As a non-limiting example, a high-level description may be converted to a logic-level description such as a register-transfer language (RTL), a gate-level (GL) description, a layout-level description, or a mask-level description. As a non-limiting example, micro-operations to be performed by hardware logic circuits (e.g., gates, flip-flops, registers, without limitation) of the logic circuitry 308 may be described in a RTL and then converted by a synthesis tool into a GL description, and the GL description may be converted by a placement and routing tool into a layout-level description that corresponds to a physical layout of an integrated circuit of a programmable logic device, discrete gate or transistor logic, discrete hardware components, or combinations thereof. Accordingly, in some examples the machine executable code 706 may include an HDL, an RTL, a GL description, a mask level description, other hardware description, or any combination thereof.
In examples where the machine executable code 306 includes a hardware description (at any level of abstraction), a system (not shown, but including the storage 304) may implement the hardware description described by the machine executable code 306. By way of non-limiting example, the processors 302 may include a programmable logic device (e.g., an FPGA or a PLC) and the logic circuitry 308 may be electrically controlled to implement circuitry corresponding to the hardware description into the logic circuitry 308. Also by way of non-limiting example, the logic circuitry 308 may include hard-wired logic manufactured by a manufacturing system (not shown, but including the storage 304) according to the hardware description of the machine executable code 306.
Regardless of whether the machine executable code 306 includes computer-readable instructions or a hardware description, the logic circuitry 308 is adapted to perform the functional elements described by the machine executable code 306 when implementing the functional elements of the machine executable code 306. It is noted that although a hardware description may not directly describe functional elements, a hardware description indirectly describes functional elements that the hardware elements described by the hardware description are capable of performing.
As used in the present disclosure, the terms “module” or “component” may refer to specific hardware implementations to perform the actions of the module or component and/or software objects or software routines that may be stored on and/or executed by general purpose hardware (e.g., computer-readable media, processing devices, etc.) of the computing system. In some examples, the different components, modules, engines, and services described in the present disclosure may be implemented as objects or processes that execute on the computing system (e.g., as separate threads). While some of the system and methods described in the present disclosure are generally described as being implemented in software (stored on and/or executed by general purpose hardware), specific hardware implementations or a combination of software and specific hardware implementations are also possible and contemplated.
As used in the present disclosure, the term “combination” with reference to a plurality of elements may include a combination of all the elements or any of various different subcombinations of some of the elements. For example, the phrase “A, B, C, D, or combinations thereof” may refer to any one of A, B, C, or D; the combination of each of A, B, C, and D; and any subcombination of A, B, C, or D such as A, B, and C; A, B, and D; A, C, and D; B, C, and D; A and B; A and C; A and D; B and C; B and D; or C and D.
Terms used in the present disclosure and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including, but not limited to,” the term “having” should be interpreted as “having at least,” the term “includes” should be interpreted as “includes, but is not limited to,” etc.).
Additionally, if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases “at least one” and “one or more” to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim recitation to examples containing only one such recitation, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an” (e.g., “a” and/or “an” should be interpreted to mean “at least one” or “one or more”); the same holds true for the use of definite articles used to introduce claim recitations.
In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should be interpreted to mean at least the recited number (e.g., the bare recitation of “two recitations,” without other modifiers, means at least two recitations, or two or more recitations). Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc.” or “one or more of A, B, and C, etc.” is used, in general such a construction is intended to include A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together, etc.
Further, any disjunctive word or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” should be understood to include the possibilities of “A” or “B” or “A and B.”
While the present disclosure has been described herein with respect to certain illustrated examples, those of ordinary skill in the art will recognize and appreciate that the present invention is not so limited. Rather, many additions, deletions, and modifications to the illustrated and described examples may be made without departing from the scope of the invention as hereinafter claimed along with their legal equivalents. In addition, features from one example may be combined with features of another example while still being encompassed within the scope of the invention as contemplated by the inventor.