Computing devices are generally shut down in a controlled manner by software installed on the computing device, which may be referred to as a software shutdown. However, computing devices may also include a hardware mechanism to force the shutdown of the computing device, such as when the software shutdown is not able to properly shutdown the computing device. For example, the software shutdown may not be available when the computing device becomes non-responsive or freezes. This hardware mechanism may be referred to, for example, as a hardware shutdown, override, power override, power button override, or variants thereof. Often, the hardware shutdown is activated by a user pressing and holding down the computing device's power button for a threshold period of time. For instance, the computing device may initiate the hardware shutdown after the power button is asserted for at least 4 seconds.
The following detailed description references the drawings, wherein:
Specific details are given in the following description to provide a thorough understanding of embodiments. However, it will be understood by one of ordinary skill in the art that embodiments may be practiced without these specific details. For example, systems may be shown in block diagrams in order not to obscure embodiments in unnecessary detail. In other instances, well-known processes, structures and techniques may be shown without unnecessary detail in order to avoid obscuring embodiments.
However, the hardware shutdown may not allow for a controlled shutdown of the computing device. For example, data may not be saved or some flags may not be set. As a result, the computing device cannot be restarted or powered on remotely after the hardware shutdown, whereas the computing device can be restarted or powered on remotely after the software shutdown. Thus, where the computing device is relocated remotely, such as in an unattended kiosk, an operator of the computing device would likely have to travel to the location of the computing device in order to restart the computing device following the hardware shutdown,
For at least the reason above, in some cases, it may also be desirable to prevent the hardware shutdown from being initiated by the user pressing and holding down the computing device's power button. However, a chipset of the computing device cannot generally be configured or easily modified to remove such functionality.
Thus, as detailed above, computing devices are generally unable to be restarted or powered on remotely following a hardware shutdown. Further, computing devices are generally unable to prevent a user from initiating the hardware shutdown. A software or hardware shutdown may refer to a procedure for removing power from one or more of the computing device's components such as one or more processors or memories, like RAM or a hard disk drive. As explained above, the software shutdown may be a controlled shutdown of the computing device by software installed on the computing device, where the term software includes machine readable instructions. The hardware shutdown may be a forced shutdown of the computing device initiated by a hardware mechanism included in the computing device. The hardware shutdown is generally provided as a way to shut down the computing device when the software shutdown is not able to properly shut down the computing device, such as when the computing device becomes non-responsive or freezes. Embodiments may allow the computing device to be restarted or powered on remotely, even after the hardware shutdown and/or may prevent the initiation of the hardware shutdown.
The term active state may refer to a signal at one of a logic high (“1”) or logic low (“0”) state. A term inactive state may refer to a signal at a remaining one of the logic high or low states or an indefinite logic state that cannot be defined as having either logic high or low. For example, a signal having a first voltage range may be determined to be logic high and a signal having a second voltage range lower than the first voltage range may be determined to be logic low. Further, a signal having any voltages outside the first and second voltage ranges may be determined to be an indefinite logic.
The timer 120 is to measure a continuous time period the power button signal is in an active state, where the power button signal enters the active state when the power button 130 is physically activated, such as by a user to initiate the hardware shutdown. If the power button signal is in a continuous active state for a time period greater than the controller time, the timer 120 is to generate and transmit an override signal in an active state to the control processor 110. Otherwise, the override signal is in an inactive state.
The controller time may be stored in a memory 122 included in the timer 120 and compared to the power button signal by a processor 124 stored in the timer 120. For example, if the controller time is 3.9 seconds, the override signal will be in an active state only if power button signal is continuously in the active state for more than 3.9 seconds. In this case, if the power button signal was in the active state for 3.8 seconds, then in the inactive state for 0.1 seconds, and next in the active state again for 3.8 seconds, the override signal would not be in the active state during this time period.
In embodiments, the controller time may also be stored externally of the timer 120, such as in the control processor 110 or elsewhere in the controller 100. Embodiments of the timer 120 may be implemented via hardware and/or software. For example, the timer 120 may be mechanical, electromechanical, electronic, software, and the like. In one embodiment, the timer may be a count-down counter that measures time based on a frequency of a clock signal.
The control processor 110 is to generate and send an interrupt to a system if the continuous time period the power button signal is in the active state is greater than the controller time, the interrupt having higher priority than an operating system of the system. For example, the interrupt may cause the system to stop and/or to save its current state of execution for instructions relating to the operating system and instead execute instructions relating to the interrupt. The control processor 110 is to pass the power button signal to the system if the continuous time period the power button signal is in the active state is less than or equal to the controller time. For example, in
The power button 130 may be a physical button or other type of switch that is accessible by a user. For example, the power button 130 may be located on a front panel of a computing device, with the power button signal being in the active state only while the power button 130 is pressed. For instance, if the user were to hold or press down the power button 130 for four (4) seconds, the power button signal would be in the active state for 4 seconds. While the power button 130 is shown in
The control processor 210 of the controller 200 is to generate the power button signal in the active state and transmit the active power button signal to the system for a continuous time period less than a system time, if the control processor 210 receives the wake event. The wake event and the system time are explained in more detail in
The memory 320 may store a basic input/output system (BIOS) configured to output an instruction or System Management Interrupt (SMI) in response to the interrupt. The chipset 330 includes a processor 332 and is to enter a System Management Mode (SMM) in response to the instruction or SMI. For example, in the SMM, the chipset 330 may generate a power control signal to control power provided to the logic unit 340. While the chipset 330 is shown to include a single processor 332 and a single logic unit 340, the term processor 332 may also refer to a plurality of processors and the term logic unit 340 may also refer to a plurality of logic units. The one or more of the processors 332 may be configured to communicate with each other and/or interface with any of the logic units 340.
The logic unit 340 may include any type of device internal to the computing device 300 that requires a power source, such as components or expansion cards that may be connected to or included in the chipset 330. Some examples of these components or expansion cards may include a main memory, graphics controllers, peripheral buses such as PCI or ISA, integrated peripherals such as Ethernet, USB, audio devices, and the like.
The processor 332 included in the chipset 330 and the control processor 110 or 210 included in the controller 100 or 200 may be one or more central processing units (CPUs), semiconductor-based microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in the memory 122, 220 or 320.
The memory 122, 220 or 320 may be a machine-readable storage medium such as any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Thus, the memory 122, 220 or 320 may be, for example, Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage drive, a Compact Disc Read Only Memory (CD-ROM), and the like. The memory 122, 220 or 320 may store one or more applications executable by the processor 110, 210 or 332. For example, the memory 320 may include instructions for generating the SMI.
As shown in
Normally, the power button signal may only be in the active state if the user physically activates the power button 130, such as when the power button 130 that is located on the computing device 300 is physically pressed. However, as detailed in
The controller and system times may be varied or set according to a determined or desired time length, where the system time is greater than the controller time. Otherwise, if the system time was to be less than the controller time, the computing device 300 would begin the hardware shutdown before the controller 100 or 200 could generate the interrupt. Thus, for example, if the system time is 4 seconds, the controller time should be less than 4 seconds. The system time may be stored in the memory 320.
Upon receiving the interrupt, the chipset 330 is to forward the interrupt to the memory 320 via the processor 332. The interrupt may be identified by the chipset 330, for example, according to one or more bits included in the interrupt, such as control or address bits, or according to a port of the chipset 330 at which the interrupt is received. The BIOS included in the memory 320 may then trigger the SMI in response to the interrupt. For example, the SMI may instruct the chipset 330 to enter a different mode, such as the SMM, in which a relatively low-level handler routine is run to handle the SMI, where the SMI and its associated routine have a higher priority than an operating system of computing device 300. This interrupt service routine may direct the chipset 330 to, for example, ignore the power button signal, prevent the shutdown of the computing device 300, send an alert, initiate a sleep state, and the like. The actions of the interrupt service routine may be programmed according to a desired functionality. While
The alert may be sent to an external entity, such as an operator, to provide notification that an attempt is being made to shutdown the computing device 300. The sleep state may refer to a low power state in which power consumption is reduced compared to a full on and idle state of the computing device 200. The sleep state may also allow the user or operator to save time by avoiding a full restart or reboot of the computing device 300. The sleep state may, for example, be a Suspend-To-RAM (STR) state, a Suspend-To-Disk (STD) state, or a Soft Off (SOFF) state. Context information used to wake from the sleep state may be stored in a volatile memory (not shown) of the system 310 in the STR state. The context information may be stored in a non-volatile memory (not shown) of the system 310 in the STD state, and the context information may not be stored in the SOFF state.
As shown in
In
The network element 410 is to send the wake event to the computing device 300 through the network 420, with the wake event to activate the computing device 300 from a sleep state or shutdown state. The network 420 may include one or more interconnected devices, such as network interface cards, repeaters, hubs, bridges, switches, routers, firewalls, and the like. The interconnected devices may share resources or information, such as the wake event.
The wake event may be a type of data or signal, such as a packet, sent to the chipset 330 and the controller 200. The wake event may be, for example, a Wake-On-Local Area Network (WOL) event, Wake-On-Ring (WOR) event, Peripheral Component Interconnect (PCI) Express event, or Legacy PCI Power Management Event (PME). The WOL event may be delivered through a network, while a WOR event may be delivered through a modem. The PCI Express event or Legacy PCI PME may be delivered from any type of peripheral device, such as a network interface controller (NIC). For example, assuming the computing device 300 is in a sleep state receptive to wake events, the wake event may be transmitted to a component of the chipset 330 that is powered on even when computing device 300 is in the sleep state and other components of the computing device 300 are powered down. In response to receiving the wake event, such a component may indicate to the computing device 300 to power on.
The wake event may be generated automatically or manually by the operator, where the operator may be an owner, licensor, licensee, or caretaker of the computing device 300, and the like. The user may be anyone using the computing device 300, such as a customer.
In the embodiment of
If instead the continuous time period the power button signal is in the active state is greater than the controller time, then the method proceeds to block 530, where the timer 120 generates the override signal and the processor generates and transmits the interrupt to the system 310. Next, at step 540 the system 310 performs an action in response to receiving the interrupt. For example, as detailed above, the system 310 may ignore the power button signal, prevent the shutdown of the computing device 300, send an alert or initiate a sleep state.
In an embodiment, where the method 500 is implemented using the controller 200 of
According to the foregoing, embodiments disclosed herein measure a continuous time period a power button signal is in an active state. As a result, some embodiments at least allow a computing device associated with the power button signal to be restarted or powered on remotely, even after a user attempts a hardware shutdown of computing device. Some embodiments may also prevent the initiation of the hardware shutdown. As a result, an onsite visit to the remote computing device to restart the computing device can likely be avoided, thus at least reducing travel costs and time for an operator while also improving customer service.