The present invention relates to computer systems, and more particularly, to a system and method involving a microchip configured to provide network access in the event of a computer system failure that prevents user access to an operating system.
Many companies and individual users depend on computers to meet their information processing needs. Although functionality and reliability of computers have improved significantly in recent years, computers can still experience an issue once in a while. The issue may be software or hardware-related. Computers may freeze or hang due to virus or incorrect operating system configuration. Computers may not be able to start because a peripheral of the computer, such as a hard drive, does not function properly. In any of these situations, there is a high chance that the users cannot access the operating system and the computer becomes unusable.
Computers are generally equipped with some form of internal diagnostics to help recover from a computer issue. An internal diagnostic software system may include a graphical user interface that guides the users through the technically complex execution of diagnostic routines. To ease the process, the interface is designed to be aesthetically pleasing and user-friendly. Inexperienced users, however, are still forced to interact with the technical diagnostic instructions, report findings to a remote technician via telephone if the users decide to consult a remote technician, and/or take actions under direction of the remote technician over telephone. These procedures are time consuming, laborious, and expensive.
There are a few possible solutions to the aforementioned problem. First, the technician can travel to the site of the troubled computer to directly repair the computer. This is, however, a great waste of the technician's time and frequently removes the technician from technical resources, such as repair manuals and tools, that are available at the technical support center. Second, the troubled computer can be removed from its location and be delivered to a computer repair facility. This is, however, impractical for large businesses that have hundreds or thousands of computers. Third, the remote technician can perform remote diagnostics via communications software that runs under the computer's operating system and that relies on Internet. Unfortunately, this option is only available when the computer is substantially operable. Fourth, computers can be supplied with dedicated diagnostic hardware. This is, however, not only expensive, rendering computers noncompetitive in terms of price, but is also a wasteful duplication of hardware, as the diagnostic hardware comes into use only rarely.
Accordingly, there remains a need for a computer system and computer method for providing network access in the event of a computer failure that are improved over what is currently known in the art and that eliminate the shortcomings of the solutions mentioned above.
In accordance with principles of the present invention, a computer system for providing network access during a computer system failure of the computer system is contemplated. In one embodiment, the system may comprise a first processor and a first non-volatile memory electrically connected to the first processor. The first non-volatile memory stores a first firmware that is readable and executable by the first processor and that is implemented to perform a boot process. The system may also comprise a network interface configured to interface with a communications network and to be off prior to loading an operating system. The system may further comprise a microchip electrically connected to the first processor. The microchip includes a second non-volatile memory storing a second computer program that is readable and executable by the first processor. The second computer program is implemented to initialize the network interface and connect the computer system to the communications network via the network interface when the first processor detects a failure in the boot process.
In an alternative embodiment, the first processor may read and execute the first firmware to perform the boot process that includes initializing and testing additional electronic components and loading an operating system. The first processor may be configured to detect that one of the additional electronic components is experiencing a failure in the initializing and testing step. The first processor may be configured to read and execute the second computer program when the failure in the initializing and testing step is detected. The network interface may be initialized and connect the computer system to a communications network upon execution of the second computer program.
In an alternative embodiment, the first processor may be configured to detect a failure in loading an operating system. The first processor may be configured to read and execute the second computer program when the failure in loading an operating system is detected. The network interface may be initialized and connect the computer system to a communications network upon execution of the second computer program.
In an alternative embodiment, the second computer program may include a graphical user interface having a command allowing a computer user to communicate with a computer technician in a remote location via the communications network. The graphical user interface may also include a command allowing a computer user to share screen or transfer data via the communications network.
In an alternative embodiment, the first processor may read and execute the first firmware to perform the boot process that is part of a start-up procedure. The start-up procedure may further include a power-up process and a preliminary activation process. The microchip may further include a second processor. The second processor may be configured to detect a power supply failure in the power-up process. The second processor may be configured to read and execute the second computer program when the power supply failure is detected.
In an alternative embodiment, the second processor may be configured to detect an electronic component failure in the preliminary activation process. The second processor may be configured to read and execute the second computer program when the electronic component failure is detected.
In an alternative embodiment, the failure is a hard drive failure or a software failure.
In an alternative embodiment, the network interface is an Ethernet adapter, a wireless network adapter, or a Bluetooth adapter.
In accordance with principles of the present invention, a method for providing network access during a computer system failure is contemplated. In one embodiment, the method may comprise performing, by a first processor reading and executing a first firmware in a first non-volatile memory, a boot process. The method may also comprise configuring a network interface capable of interfacing with a communications network to be off prior to loading an operating system. The method may further comprise initializing, by the first processor reading and executing a second computer program in a second non-volatile memory, the network interface and connecting, by the initialized network interface, the computer system to the communications network when the first processor detects a failure in the boot process.
The processor 110 can include a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (μP), an application specific integrated circuit (ASIC), a programmable logic array (PLA), a digital signal processor (DSP), a field programmable gate array (FPGA), a reduced instruction set computing (RISC) processor, or other types of processors. The processor 110 controls the operations and performance of the computer system 100. The processor 110 can read and execute computer instructions that are stored on memory 115, 120. Main memory 115 can include random-access memory (RAM), cache memory, or other types of memory used for temporarily storing data. The non-volatile memory 120 and the storage 125 can include read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, solid state memory, ferroelectric RAM (FRAM), magnetoresisitve RAM (MRAM), hard disk drive, solid state drive, floppy disk, magnetic tape, optical disc, or other types of memory and storage used for permanently storing data. The non-volatile memory 120 and the storage 125 can be the same device. The non-volatile memory 120 is configured to store Basic Input/Output System (BIOS) or other similar firmware used to perform a number of tasks, including a boot process. A boot process includes initializing and testing of various hardware devices implemented within the computer system 100 and performing other associated steps. An illustrative boot process is described with respect to
The network interface 130 is configured to exchange data with an access point, a server, another computer system, or other devices via a communications network. The network interface 130 is operative to interface with a communications network using any suitable communications protocol such as Wi-Fi, 802.11, Bluetooth, radio frequency systems such as 900 MHz, 1.4 GHz, and 5.6 GHz communication systems, infrared, GSM, GSM plus EDGE, CDMA, quadband, and other cellular protocols, VOW, or any other suitable protocol. The network interface 130 can include an Ethernet adapter (for wired connection), a wireless network adapter, a Bluetooth adapter, or other similar types of adapters. The communications network may also be established by using wires such as an optical fiber or Ethernet cable. The I/O devices 135 can include a display (e.g., CRT display, plasma display, LED display, LCD display, etc.) for displaying information and a speaker for outputting audio to a computer user, and an input device (e.g., keyboard, mouse, trackball, cursor direction keys, microphone, etc.) for communicating information and command selections to the processor 110. The I/O devices 135 can also include circuitry that converts and encodes/decodes analog signals and other signals into digital data. In some embodiments, I/O devices 135 can also convert digital data into another type of signal, and vice-versa. For example, I/O devices 135 can receive and convert physical contact inputs from a multi-touch screen, physical movements from a mouse or sensor, analog audio signals from a microphone, or other input. The digital data can be provided to and received from components of the computer system 100.
The power supply 145 may be one that relies on an electrical outlet to supply electric energy to the computer system 100 and its hardware components. For example, the power supply 145 may be a DC power supply, AC power supply, switched-mode power supply, programmable power supply, uninterruptible power supply, high voltage power supply, or other similar power supplies. The power supply 145 may also be a battery. The media device 148 may be a read-only optical memory device (e.g., CD-ROM, DVD-ROM, etc.), a flash card reader, a USB port, or the like. The bus 150 can include a memory bus or memory controller, a peripheral bus, a serial bus, an accelerated graphics port, a process or local bus using any of a variety bus architectures and similar and complementary devices. The additional electronic components 155 can include a video card, a sound card, a printer, and other devices.
The microchip 140 is an integrated circuit that includes one or more electronic devices.
The microchip can also include a processor 210 that is configured to read and execute the second computer program. The processor 210 may be configured to read and execute the second computer program only or configured without reading or executing any other computer programs or instructions stored in an electronic component external to the microchip 200. In some embodiments, the processor 210 can be configured to read and execute other computer programs or instructions stored in an electronic component external to the microchip 200, such as an operating system. The processor 210 can include any processor described above. The microchip 200 can also include a power source 215 that is configured to provide electric energy to the microchip 200 and/or other electronic components in the computer system 100. The power source 215 may be configured to provide electric energy when the power supply 145 (
Referring back to
The electrical socket is connected to the bus 150. The electrical socket (or the microchip) may be based on surface-mount technology such as ball grid array (BGA), land grid array (LGA), pin or lead-based connection (e.g., dual inline package (DIP), small outline integrated circuit package (SOIC), small outline package (SOP), quad flat package (QFP), etc), pin or leadless connection (e.g., quad flat no-leads package (QFN)), or other types of surface-mount technology. The electrical socket may also be a serial port configured to provide serial communication (e.g., universal serial bus port, Firewire port, serial ATA port, serial SCSI port) or a parallel port (e.g., parallel ATA port, IEEE-1284 port, IEEE-488 port) configured to provide parallel communication. The electrical socket may also be based on Peripheral Component Interconnect (PCI) or PCI Express (PCIe). Other types of electrical socket are also contemplated.
The microchip may be configured to communicate with one or more electronic components within the computer system 100 via the bus 150 by default (determined by the microchip without user selection). The microchip has direct access to the one or more electronic components allowing the microchip to access the one or more electronic components without relying on BIOS or the operating system. The microchip is preferably configured to communicate with the network interface 130, the I/O devices 135, and the media device 148 by default, or at least with these devices by default. The microchip may be further configured to communicate with a video card and a sound card since they may be required in order to output images and sound.
The processor 110 in
The boot process 415 includes initializing and testing additional electronic components 420 and loading an operating system 425. In step 420, the electronic components to be initialized and tested may be electronic components that are not yet activated in process 410. The electronic components may be initialized and tested via bus 150. Step 420 includes initializing and testing a storage (e.g., 125,
The boot process 415 may be interrupted when the computer system experiences a failure in either step 420 or 425. BIOS is available for the user to operate the computer system when a failure occurs. BIOS may include a graphical user interface or a software to partially control (or only partially control) the operation of the computer system and diagnose the failure, such as finding what the failure is. BIOS or other firmware capable of performing a boot process used in the computer system is one that does not initialize the network interface 130 or that does not provide Internet access or other network access (e.g., local area network access, access to another computer system, etc.). Absent the microchip or with the microchip turned off, the user or the computer system gains network access through the operating system. The boot process 415 usually is the first process performed by the computer system after the computer system is powered on. The boot process 415 is the first process performed in the sense that it is the first process performed after the mandatory electronic components are turned on.
A failure 435 may occur in step 420 when an electrical component is completely or substantially inoperable (hardware failure) or the software or driver of an electrical component is corrupted or cannot be recognized by the processor (software failure). The second computer program on the microchip may be loaded by the processor (either process 110 or 210) when a failure 435 is detected. The failure 435 may be a storage (e.g., hard drive) failure such that the processor cannot read the operating system in the storage. The failure 435 may be other hardware failure that prohibits the processor from reading or executing the operating system. When the failure 435 is detected, the second computer program may be loaded (step 440) instead of the BIOS graphical user interface or other BIOS software configured to partially control (or only partially control) the operation of the computer system and diagnose the failure 435. The loading of the second computer program moves the computer system from its current software environment (BIOS) to a different software environment (second computer program) that works independent of the current software environment. The second computer program takes over the role of BIOS and BIOS may cease to proceed. In some embodiments, both the second computer program and the BIOS graphical user interface or other BIOS software can be presented to the user allowing the user to select which application the user would like to use (e.g., via MS-DOS). When the second computer program is loaded 440, the microchip initializes the electronic components that the microchip is configured to communicate with, such as the network interface (130,
A failure 445 may also occur in step 425 when the operating system cannot be loaded (completely inoperable) or can be loaded but fails to work normally (substantially inoperable). In either situation, the problem may be caused by virus, improper computer system configuration (e.g., through the registry in the operating system), hardware failure (e.g., storage failure), or other means that causes the operating system to be unrecognizable by the processor. In either situation, all the electronic components may be fully functional. The failure 445 may be other software failure that prohibits the processor from loading the operating system or the operating system from working satisfactorily. Failure 435 and 445 may also coexist. When the failure 445 is detected, the second computer program may be loaded (step 440) instead of the BIOS graphical user interface or other BIOS software configured to partially control (or only partially control) the operation of the computer system and diagnose the failure 445. The second computer program operates and includes functionalities as described above, which at the minimum allows the user or the computer system to initialize the network interface and gain network access. If no failure is detected, then the start-up procedure 400 ends in step 430 and the user can use the loaded operating system to access all the functions or electronic components provided by the computer system or other functions or electronic components that are unavailable in BIOS or the second computer program.
A failure 450 may also occur in the preliminary activation process 410 when one or more of the mandatory electronic components cannot be turned on or can be turned on but cannot operate because of a hardware issue or other issue. The mandatory electronic component(s) that cannot be turned on may be the processor 110, non-volatile memory 120, or both. The processor 110 and non-volatile memory 120 are electrically connected to the microchip 140 via a circuitry, wire, or bus physically built on the motherboard to communicate with each other (e.g., transmitting and receiving signal or data). When the microchip 140 detects that the processor 110 fails to turn on or turns on but cannot operate, the processor 210 in the microchip is initialized to read and execute the second computer program stored in the non-volatile memory 205. When the microchip 140 detects that BIOS or other firmware on the non-volatile memory 120 cannot be read and executed by the processor 110, the processor 210 in the microchip may also be initialized to read and execute the second computer program stored in the non-volatile memory 205. In some embodiments, the processor 110 may read and execute the second computer program stored in the non-volatile memory 205 if the processor 110 is functional, instead of the processor 210. The microchip may detect such situations by the processor 110 or non-volatile memory 120 sending an error message to the microchip in response to a failure (e.g., cannot be turned on or can be turned on but cannot operate), by receiving no signal, messages, or responses from the processor 110 or non-volatile memory 120 due to a failure, or by other methods. The processor of the microchip may perform the detection. If no failure is detected, the process 410 proceeds to the process 415.
In the power-up process 405, the power supply may fail to operate. The microchip may detect such an issue in a manner described above. The microchip is also electrically connected to the power supply via a wire, bus, or circuitry on the motherboard to communicate with each other (e.g., transmitting and receiving signal or data). When the microchip detects such a failure, e.g., cannot receive power from the power supply, the processor of the microchip is powered on or initialized by the battery in the microchip. The battery can supply electric energy to the processor. Once the processor is powered on, the processor can read and execute the second computer program. In some embodiments, the computer system's processor (110) can also be powered on or initialized by the battery when the power supply fails. The computer system's processor can then perform processes 410, 415 or read and execute the second computer program. A microchip having a battery does not need to depend on the power supply to operate. A microchip having no battery may depend on the power supply to operate and may be powered by the power supply via the electrical socket, a power wire, or a UBS connection. The battery is different from the motherboard battery (e.g., CMOS battery) that is configured to feed the configuration memory and feed the real time clock of the computer system (e.g., current date and time). The battery is one that can provide an amount of voltage, current, or power that is higher than that of the motherboard battery or that has enough voltage, current, or power to power on processor 110, 210 and/or non-volatile memory 120, 205. If no failure is detected, the process 405 proceeds to the process 410.
In general, once a failure is detected, the start-up procedure 400 is aborted at the process in which the failure is detected and the second computer program is loaded. The user stays in the environment provided by the second computer program to resolve the failure or use services provided by the second computer program. The user may use the second computer program to reinitiate the start-up procedure 400. The second computer program can also be loaded in any of the processes when no failure is detected.
To permit the computer system loading the second computer program in response to all four types of failures 435, 445, 450, 455, preferably the microchip is one that includes a processor, a non-volatile memory, and a battery. To permit the computer system loading the second computer program in response to failures 435, 445, 450, preferably the microchip is one that includes a processor and a non-volatile memory. To permit the computer system loading the second computer program in response to failures 435, 445, preferably the microchip is one that includes a non-volatile memory. The microchip may include more or less electronic components and be configured to respond to a particular type of failure or any number of types of failures.
After the second computer program is loaded 440, a graphical user interface is presented to the user.
In response to the user selecting the diagnostics command 505, the interface 500 may display a list of electronics components in the computer system in a window (e.g., window 545). The user may select one of the electronic components to be addressed by a diagnostic application that is part of the second computer program. The diagnostic application performs one or more tests on the selected electronic component. The tests may include determining whether the software driver for the selected electronic component is correctly installed in the computer system, determining whether the installed software driver is the most current software driver for the selected electronic component, evaluating whether the selected electronic component is operating or operating correctly, and other tests. The evaluating step may include sending an operating test instruction to the selected electronic component and receiving test response after the selected electronic component receives or executes the instruction, or sending an instruction that requires actual performance of the selected electronic component and receiving the selected electronic component's response to the instruction during or after the performance.
If a selected electronic component did not pass a diagnostic test, the diagnostic application attempts to repair the failed component. The repair attempt may include reinstalling a software driver or resetting a failed component. If the diagnostic application is unable to repair the problem, the diagnostic application may suggest recycling the software drivers for the failed component, powering off and on the failed component, or rebooting the computer system (e.g., to perform the entire procedure 400 again, to perform only processes 410 and 415, or to perform only process 415). If the attempt repair is successful, the second computer program may automatically restart the procedure 400 or the user can select the command 507 to restart the procedure 400 so the operating system can be loaded and used to gain full access to the computer system. The diagnostic application may query the user to determine whether the selected component is operating or operating correctly or to verify that the selected component has been repaired. The diagnostics command and diagnostic application interact with the window 545 to display relevant information and results. The window 545 includes commands allowing the user to interact with the displayed information and results, such as viewing and selecting the displayed information and results. The virus scan command 509 allows the user to perform a virus scan of a selected electronic component.
When the user selects the chat command 510, the command 510 may connect the user to a computer technician via the network connection established during the start-up procedure. The network connection may be based on communications protocol such as Wi-Fi, 802.11, Bluetooth, radio frequency systems such as 900 MHz, 1.4 GHz, and 5.6 GHz communication systems, infrared, GSM, GSM plus EDGE, CDMA, quadband, and other cellular protocols, VOIP, or any other suitable protocol. The user and the computer technician can communicate with each other via a window (e.g., window 550). The computer technician is an individual who is skilled in repairing computer systems and works in a remote technical support center. The computer technician may also be in the same location as the user. The window 550 includes commands allowing the user to enter information and view information provided by the computer technician. In some embodiments, the network connection to a computer technician can be established automatically after the second computer program is loaded. The chat command 510 may also connect the user to vendors and other individuals. The chat command 510 may provide a list of repair centers, vendors, and individuals that the user wish to be connected to.
The share command 520 allows the user to share his or her computer screen with the computer technician so the user and the computer technician can view the screen simultaneously and discuss the computer system problem live via the window 550. The share command 520 also allows the computer technician to use the commands in
In some embodiments, the functions provided by the second computer program can be implemented on a server or a different computer system and be accessible by the computer system through the network connection established during the start-up procedure (e.g., diagnostic application, virus scan, etc.).
The media device command 535 allows the user to turn on or off a media device. A media device may be a read-only optical memory device (e.g., CD-ROM, DVD-ROM, etc.), a flash card reader, a USB port, or the like. The media device also allows the user to provide information to and store information received from the computer technician and to access additional functionalities of the computer system. The media device may be already turned on after the second computer program is loaded.
The video access command 537 allows the user to activate a video card or video port. Upon activating a video card, the user can view videos in a window (e.g., window 545). The videos may be obtained from a storage, the technician, or other sources. The video card may not be one of the default electronic components that the microchip is configured to communicate with, but access to the video card can be subsequently established by selecting the video access command 537. In some embodiments, the video card may be one of the default electronic components and be used to display the graphical user interface to the user.
The network access command 540 allows the user to turn off or on the network connection. When the user selects the command 540 to turn a network connection, a list of available connections is presented to the user. The user may select an available network to gain network access. A network connection may be a connection to an access point, a server, a computer system, or other devices (e.g., mobile device). The network connection may be automatically provided such that the computer system already has network access after the second computer program is loaded without requiring user input or selection. The network connection may be turned off by the user subsequently via the same command 540.
The restart command 542 allows the user to reinitiate the start-up procedure. The start-up procedure can be reinitiated before or after a failure is repaired. The start-up procedure is reinitiated from the power-up process. The start-up procedure may also be reinitiated from other process (410 or 420).
Upon selecting the print command 543, the second computer program can establish a communication with a printer if a printer is connected to the computer system and instruct the printer to print any information provided by the second computer program, including information displayed in windows 545, 550, diagnostic result, and other information. The printer may not be one of the default electronics components that the microchip is configured to communicate with, but access to the printer can be subsequently established by selecting the print command 543.
Upon selecting the setting command 544, the user is presented with different settings of the second computer program. The setting may include when the second computer program should be loaded (e.g., whenever a failure is detected, when a specific type of failure is detected, always be loaded even if there is no failure, or never) and the default electronic components that should be automatically internalized by the second computer program upon loading the second computer program.
The second computer program may also have its own web browser that is accessible via the graphical user interface. The web browser allows the user to search, reach, and explore information on the World Wide Web via the network connection established during the start-up procedure.
Although embodiments of the present invention are described with respect to BIOS, the above disclosure equally applies to other firmware that can perform a boot process. A firmware is a computer program that can perform a boot process as described above. An operating system is a computer program that is loaded during the boot process or at the end of the boot process. The firmware and the operating system operate in two separate environments and independent of each other. Non-volatile memory 120, 205 include a set of computer instructions or a code allowing the processor 110, 210 to read and execute BIOS or computer program stored on memory 120, 205. In some embodiments, the microchip 140 can replace the non-volatile memory 120 so the second computer program on the microchip 140 can be used as BIOS. In some embodiments, the microchip 140 and the non-volatile memory 120 can be implemented as one single component that stores two different firmware. The operation of the computer system may be controlled by the processor of the computer system, the processor of the microchip, or both processors. One processor may operate under instructions of the other processor. After successfully loading the operating system, the microchip can be powered off to save power consumption. The microchip remains off while the operating system is controlling the computer system. The microchip can be powered on again when the start-up procedure begins (in the power-up process). Network access includes Internet access or other network access (e.g., local area network access, access to another computer system, etc.). Preferably, network access refers to Internet access. Network access and network connection are synonymous and are used interchangeably throughout this disclosure. The network connection established during the start-up procedure (by the second computer program) may be available to the computer system only during the start-up procedure. Once the operating system begins to load or is loaded, the operating system relies on the network connection provided by the operating system (e.g., using the operating system to detect available network connections and to connect the computer system to an available network). The term initialize may refer to powering up an electronic component and/or activating an electronic component such that it can be recognized and used by the computer system.
The operation and interaction between BIOS and the second computer program on non-volatile memory 120, 205 are different from the operation and interaction between the two operating systems installed on one or two separate hard drives. One difference is that BIOS and the second computer program are programs permanently installed on a non-volatile memory 120, 205 and cannot be uninstalled or replaced by the user. Another difference is that BIOS or the second computer program are executed before any of the two operating systems is executed. BIOS or the second computer program may be a program required to run before an operating system can be loaded. Another difference is that the second computer program can be automatically loaded when a failure is detected and can always be loaded in the event of a computer failure or a storage failure. The two operating systems may require user input to select which operating system to load, and each operating system cannot be loaded if the storage on which the operating system is installed is damaged. BIOS or the second computer program can operate in such a situation. Other differences are evident from the above disclosure to a person with ordinary skill in the art.
The computer system of the present invention may also include a physical switch to activate the microchip without the computer system performing the boot process or the start-up procedure first. The switch may be used by the user to access the second computer program when there is a fault or when there is no fault. The switch may be used before or after pressing the power button of the computer system. As such, the user can manually activate the microchip to gain network connection and access other functionalities. In some embodiments, a software switch may be implemented in the operating system of the computer system allowing the user to switch between the operating system and the second computer program. The graphical user interface of the second computer program may also include a similar switch allowing the user to switch between the second computer program and the operating system.
It is understood that broader, narrower, or different combinations of the described features are contemplated, such that, for example features can be removed or added in a broadening or narrowing way. Applications of the technology to other fields are also contemplated.
It is also understood from the above description that the functionality and features of the systems, components, procedures, or processes of embodiments of the present invention include generating and sending signals to accomplish the actions.
Exemplary systems, components, procedures, and processes are described for illustrative purposes. Further, since numerous modifications and changes will readily be apparent to those having ordinary skill in the art, it is not desired to limit the invention to the exact constructions as demonstrated in this disclosure. Accordingly, all suitable modifications and equivalents may be resorted to falling within the scope of the invention.
Thus, for example, any sequence(s) and/or temporal order of steps of various procedures, processes, or methods (or sequence of device connections or operation) that are described herein are illustrative and should not be interpreted as being restrictive. Accordingly, it should be understood that although steps of various procedures, processes, or methods or connections or sequence of operations may be shown and described as being in a sequence or temporal order, but they are not necessarily limited to being carried out in any particular sequence or order. For example, the steps in such procedures, processes, or methods generally may be carried out in various different sequences and orders, while still falling within the scope of the present invention. Moreover, in some discussions, it would be evident to those of ordinary skill in the art that a subsequent action, process, or feature is in response to an earlier action, process, or feature.
It is also implicit and understood that the applications or systems illustratively described herein provide computer-implemented functionality that automatically performs a process or step unless the description explicitly describes user intervention or manual operation.
It should be understood that combinations of described features or steps are contemplated even if they are not described directly together or not in the same context.
It is to be understood that additional embodiments of the present invention described herein may be contemplated by one of ordinary skill in the art and that the scope of the present invention is not limited to the embodiments disclosed. While specific embodiments of the present invention have been illustrated and described, numerous modifications come to mind without significantly departing from the spirit of the invention, and the scope of protection is only limited by the scope of the accompanying claims.
This application claims the benefit of U.S. application Ser. No. 62/592,537 filed Nov. 30, 2017, the entire content of which is expressly incorporated herein by reference thereto.
Number | Date | Country | |
---|---|---|---|
62592537 | Nov 2017 | US |