Hot unplug predictions based on latch positions detected by a sensing circuit

An example peripheral device includes a module interface to receive power and data communication from a computing device. The peripheral device also includes an attachment tab to affix the peripheral device to a lower side of the computing device. The peripheral device further includes a latch to control an engagement of the attachment tab with the computing device. The peripheral device further includes a sensing circuit to detect a change in position of the latch. The peripheral device further includes a controller to, in response to detecting the latch moving from a locked position to an unlocked position, indicate a hot unplug prediction to the computing device via the module interface.

BACKGROUND

Some computing systems support hot unplug of hardware components. Hot unplug is the ability to remove a connected hardware component from the computing system while the computing system is powered on.

DETAILED DESCRIPTION

Hot unplug of a hardware component may cause problems that affect the user experience and/or the performance of the computing system. For example, sparks may appear when a high powered hardware component is hot unplugged. As another example, the hardware component may suffer from physical damage when hot unplugged.

Examples described herein provide a modular computing system including a peripheral device. For example, the peripheral device may include a module interface to receive power and data communication from a computing device. The peripheral device may also include an attachment tab to affix the peripheral device to a lower side of the computing device. The peripheral device may further include a latch to control an engagement of the attachment tab with the computing device. The peripheral device may further include a sensing circuit to detect a change in position of the latch. The peripheral device may further include a controller to, in response to detecting the latch moving from an locked position to an unlocked position, indicate to the computing device a hot unplug prediction via the module interface. The modular computing system may also include a computing device. The computing device may include an extending region having an opening to receive the attachment tab. The computing device may also include a module interface to couple to the module interface of the peripheral device. The computing device may further include a processor to, in response to receiving the indication, perform an operation associated with the peripheral device via the module interface of the computing device. In this manner, examples described herein may reduce problems associated with hot swapping of hardware component, such as a peripheral device.

FIGS. 1A-1Dillustrate a modular computing system100that includes a peripheral device102to indicate a hot unplug prediction to a computing device104based on a position of a latch (not shown inFIGS. 1A-1D) in peripheral device102. Peripheral device102may be any device that provides an additional functionality to computing device104. For example, peripheral device102may be a data storage device, such as a hard disk drive. As another example, peripheral device102may provide audio and/or video functionality, such as a speaker, a camera, etc. As another example, peripheral device102be an optical disk drive, such as a DVD drive. Computing device104may be, for example, a notebook computer, a desktop computer, an all-in-one system, a tablet computing device, a mobile phone, an electronic book reader, a modular computer, etc.

Turning toFIG. 1Awhich illustrates an upper side106of peripheral device102that is to couple to computing device104(not shown inFIG. 1A) or another peripheral device via a set of attachment tabs108a-108dcontrolled by a latch in peripheral device102, according to an example. Upper side106may include a module interface110to receive power and data communication from computing device104. In an example, module interface110may be implemented as a Universal Serial Bus (USB) type-c connector. Upper side106may also include a raised region112and a recessed region114defined by raised region112.

Upper side106may further include the set of attachment tabs108a-108d. The set of attachment tabs108a-108dmay affix peripheral device102to computing device104when coupled. An engagement of the set of attachment tabs108a-108dmay be controlled by a latch unlocking tab116that is located at a lower side118(not shown inFIG. 1A) of peripheral device102. For example, when latch unlocking tab116is at an unlocked position, the set of attachment tabs108a-108dmay be retracted into raised region112. When latch unlocking tab116moves from the unlocked position to a locked position, the set of attachment tabs108a-108dmay extend from raised region112into recessed region114.

Turning toFIG. 1Bwhich illustrates lower side118of peripheral device102ofFIG. 1A, according to an example. Lower side118may include an opening120that may expose latch unlocking tab116to a user of peripheral device102and may also accommodate latch unlocking tab116to change positions to control the engagement of the set of attachment tabs108a-108d.

FIG. 1Cillustrates an lower side122of computing device104that is to receive the set of attachment tabs108a-108dfrom peripheral device102for coupling, according to an example. Lower side122may be received in recessed region114of peripheral device102when computing device104and peripheral device102are coupled to form modular computing system100.

Lower side122may include an extended region124that extends from lower side122. Extended region124may include a module interface126to couple to module interface110of peripheral device102. Computing device104may supply power to peripheral device102and communicate with peripheral device102via module interface126. Extended region124may also include a set of openings128a-128dto receive the set of attachment tabs108a-108dwhen the set of attachment tabs108a-108dare extended. The number of openings in the set of openings128a-128dmay match the number of attachment tabs in the set of attachment tabs108a-108d.

FIG. 1Dillustrates a side view of modular computing system100having computing device104coupled to peripheral device102, according to an example. When modular computing system100is formed by coupling computing device104to peripheral device102, modular computing system100may be in a stacked configuration where computing device104may be located on top of peripheral device102.

FIG. 2illustrates a perspective view of a latch200of peripheral device102ofFIGS. 1A-1Dto control an engagement of the set of attachment tabs108a-108dwith computing device104, according to an example. Latch200may include a first latch arm202and a second latch arm204. Attachment tabs108a-108bmay be linked together via a first link member206. In some examples, attachment tabs108a-108band first link member206may be formed as a single piece. Attachment tabs108a-108band first link member206may be in physical contact with first latch arm202. Similarly, attachment tabs108c-108dmay be linked together via a second link member208. Attachment tabs108c-108dand second link member208may be in physical contact with second latch arm204.

During operation, when the set of attachment tabs108a-108dis to be retracted into raised region112of peripheral device102, latch200may be moved from a locked position to an unlocked position (as indicated by an arrow210) via latch unlocking tab116controlled by a user. Wedges212a-212bof first latch arm202may push against first link member206so that first link member206and attachment tabs108a-108bare moving away from first latch arm202(as indicated by an arrow214). Wedges212c-212dof second latch arm204may push against second link member208so that second link member208and attachment tabs108c-108dare moving away from second latch arm204(as indicated by an arrow216). Thus, the set of attachment tabs108a-108dmay be retracted into raised region112.

To extend the set of attachment tabs108a-108dinto recessed region114, springs (not shown) may be used. For example, springs may be placed against tips of latch arms202and204and against link members206and208. Thus, the set of attachment tabs108a-108dmay be pushed toward latch unlocking tab116and latch200may return to the unlocked position automatically when latch200is at the locked position. As described in more details inFIGS. 3A-5, by detecting the position of latch200, peripheral device102may determine if peripheral device102is about to be removed from computing device104, Thus, peripheral device102may predict an upcoming hot unplug of peripheral device102from computing device104.

FIG. 3Aillustrates peripheral device102to indicate a hot unplug prediction to computing device104based on a position of latch200, according to an example. In addition to module interface110and latch200, peripheral device102may include a controller302. Controller302may control operations of peripheral device102. Controller302may be a central processing unit (CPU), a semiconductor-based microprocessor, and/or other hardware devices suitable for retrieval and execution of instructions stored in a computer-readable storage medium.

Peripheral device102may also include a sensing circuit304that detects positions of latch200. Sensing circuit304may detect positions of latch200in a variety of ways. In an example, a ground wire may be integrated into latch200. When latch200is at the locked position (e.g., the set of attachment tabs108a-108dare extended into recessed region114), the ground wire may complete a ground wire loop in sensing circuit304. When latch200is at the unlocked position (e.g., the set of attachment tabs108a-108dare retracted from recessed region114), the ground wire may be retracted from the ground wire loop to create an open circuit. Sensing circuit304may detect the open circuit and indicate to controller302that an open circuit is present. The indication of an open circuit in sensing circuit304may indicate that latch200has changed from the unlocked position to the locked position and that peripheral device102may be hot unplugged from computing device104.

In response to detecting the open circuit via sensing circuit304, controller302may indicate a hot unplug prediction306to computing device104via module interface110. Controller302may indicate hot unplug prediction306to computing device104in different ways. For example, controller302may indicate hot unplug prediction306as a voltage level output via module interface110. Computing device104may sense the voltage level via a module interface308of computing device104that is coupled to module interface110. In another example, controller302may generate hot unplug prediction306as a message and send the message to computing device104via module interface110. Computing device104may receive the message via module interface308.

In response to detecting hot unplug prediction306via module interface308, computing device104may perform an operation associated with peripheral device102. For example, a processor310of computing device104may reduce an amount of power provided to peripheral device102via module interface308. In another example, processor310may generate a command312to instruct peripheral device102to perform an operation. Processor310may transmit command312to peripheral device102via module interface308. In response to receiving command312via module interface110, peripheral device102may perform the operation. In an example, the operation may include instructing peripheral device102to power down based on command312. In another example, the operation may include changing an operating parameter of a component of peripheral device102.

Computing device104may select the type of operation to be performed based on a function of peripheral device102. For example, when peripheral device102is an optical disk drive, the change of the operating parameter of the component may include removing the read/write head of the optical disk drive from an optical disk in the optical disk drive. When peripheral device is a hard disk drive, the change of the operating parameter of the component may include removing a read/write head of the hard disk drive from the hard disk drive platter. As another example, when peripheral device is a hard disk drive, the operation may include performing a cache flushing operation at the hard disk drive. In addition to instructing peripheral device102to prepare for the upcoming hot unplug, computing device104may also instruct a component of computing device104to prepare for the hot unplug. This is described in more detail inFIG. 3B.

FIG. 3Billustrates peripheral device102to indicate a hot unplug prediction to computing device104based on a position of latch200, according to another example. In response to detecting hot unplug prediction306, processor310may inform an operating system314of computing device104about the upcoming hot unplug so that operating system314may prepare for the hot unplug. In an example, operating system314may stop or halt any software applications that are interacting with peripheral device102. In another example, operating system314may generate and display a hot unplug warning message and display the warning message so the user of computing device104is aware of the upcoming hot unplug.

FIG. 4illustrates a peripheral device400to indicate a hot unplug prediction to a computing device based on, a position of a latch in a peripheral device, according to another example. Peripheral device400may implement peripheral device102ofFIGS. 1A-3B. Peripheral device400may include module interface110, controller302, sensing circuit304, latch200, and a computer-readable storage medium402. Computer-readable storage medium402may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Thus, computer-readable storage medium402may be, for example, Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, etc. In some examples, computer-readable storage medium402may be a non-transitory storage medium, where the term “non-transitory” does not encompass transitory propagating signals. Computer-readable storage medium402may be encoded with a series of processor executable instructions404and406.

Hot unplug message indication instructions404may indicate a hot unplug prediction to a computing device via module interface110in response to detecting latch200changing from a locked position to an unlocked position. For example, referring toFIG. 3A, in response to detecting the open circuit via sensing circuit304, controller302may indicate a hot unplug prediction306to computing device104via module interface110. Operation performing instructions406may perform an operation at peripheral device400based on a command received from the computing device. For example, referring toFIG. 3B, in response to receiving command312via module interface110, peripheral device102may perform the operation. In an example, the operation may include instructing peripheral device102to power down based on command312. In another example, the operation may include changing an operating parameter of a component of peripheral device102.

FIG. 5illustrates a computing device500to perform an operation associated with a peripheral device in response to detecting a hot unplug prediction from the peripheral device, according to an example. Computing device500may implement computing device104ofFIGS. 1A-3B. Computing device500may include processor310, module interface308, and a computer-readable storage medium502. Computer-readable storage medium502may be similar to computer-readable storage medium402ofFIG. 4. Computer-readable storage medium502may be encoded with instructions504and506.

Hot unplug prediction detection instructions504may detect, via module interface308, a hot unplug prediction from a peripheral device attached to computing device500. For example, referring toFIG. 3A, controller302may indicate hot unplug prediction306as a voltage level output via module interface110. Computing device104may sense the voltage level via a module interface308of computing device104that is coupled to module interface110. In another example, controller302may generate hot unplug prediction306as a message and send the message to computing device104via module interface110. Computing device104may receive the message via module interface308. Operation performing instructions506may perform an operation associated with the peripheral device in response to detecting the hot unplug prediction. For example, referring toFIG. 3A, in response to detecting hot unplug prediction306via module interface308, computing device104may perform an operation associated with peripheral device102.

The use of “comprising”, “including” or “having” are synonymous and variations thereof herein are meant to be inclusive or open-ended and do not exclude additional unrecited elements or method steps.