Host-independent formatting operations for USB-based storage devices

By introducing pinhole buttons and firmware control into USB storage devices, the host-independent formatting operation is achieved, solving the problem that the device cannot format when the host is unavailable, and improving the security and data privacy protection of the device.

CN120077357APending Publication Date: 2025-05-30SANDISK TECH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480004498.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-08-09
Filing Date
2024-01-22
Publication Date
2025-05-30

AI Technical Summary

Technical Problem

In the prior art, USB storage devices need to be connected to a host to format, resulting in the inability to format when the host is unavailable, and the data cannot be erased independently and capacity can be restored.

Method used

A host-independent format operation is designed. By introducing a pinhole button into the USB storage device, the user can initiate the format operation by pressing the button without connecting to the host. The storage device completes formatting or factory reset by detecting the power connection and executing firmware instructions.

Benefits of technology

It enables users to easily format USB storage devices without relying on the host, ensuring device security, reducing the risk of virus transmission, and improving data privacy protection.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120077357A_ABST
    Figure CN120077357A_ABST
Patent Text Reader

Abstract

Systems and methods for providing host independent formatting operations in a data storage device are disclosed. In some embodiments, a data storage device includes: a non-volatile memory; a pinhole button configured to be pressed; and a controller configured to: detect that the pinhole button is pressed; detecting that the data storage device is coupled to a direct current (DC) power source; and initiating formatting of the data storage device or factory reset of the data storage device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - Reference to Related Applications

[0002] This application claims the benefit of U.S. Non - Provisional Application No. 18 / 232,305, filed on August 9, 2023, entitled "HOST - INDEPENDENT FORMAT OPERATION OF USB - BASED STORAGE DEVICES", which is hereby incorporated by reference in its entirety for all purposes, and which claims the priority of U.S. Provisional Application No. 63 / 522,675, filed on June 22, 2023. Background Art Technical Field

[0003] This disclosure relates to data storage systems. In particular, this disclosure relates to the formatting of data storage devices.

[0004] Description of the Related Art

[0005] Data storage devices can perform various data operations, including processing data requests from a host. In some cases, data storage devices (such as Universal Serial Bus (USB) storage devices) may need to be formatted. Brief Description of the Drawings

[0006] For illustrative purposes, various embodiments are depicted in the drawings, and these embodiments should in no way be construed as limiting the scope of the disclosure. Additionally, various features of different disclosed embodiments can be combined to form additional embodiments that are part of the disclosure.

[0007] Figure 1 Illustrates an example data storage device related to providing host - independent formatting operations according to one or more embodiments.

[0008] Figure 2 Is a block diagram illustrating an example data storage device and associated components for providing host - independent formatting operations according to one or more embodiments.

[0009] Figure 3A Shows the connection between a host and a USB storage device according to one or more embodiments. Figure 3B Shows the connection between a power supply and a USB storage device according to one or more embodiments.

[0010] Figure 4 Is a block diagram illustrating an example data storage device for providing host - independent formatting operations according to one or more embodiments.

[0011] Figure 5Illustrates a workflow process for providing host - independent formatting in a data storage device according to one or more embodiments.

[0012] Figure 6 Illustrates a workflow process for providing host - independent factory reset in a data storage device according to one or more embodiments.

[0013] Figure 7 Illustrates a workflow process for providing host - independent formatting operations in a data storage device according to one or more embodiments.

[0014] Figure 8 Is a diagram of a computing device according to one or more embodiments. Detailed Description

[0015] Although certain embodiments have been described, these embodiments are presented by way of example only and are not intended to limit the scope of protection. In fact, the novel methods and systems described herein can be embodied in many other forms. Moreover, various omissions, substitutions, and changes can be made to the forms of the methods and systems described herein without departing from the scope of protection.

[0016] Host-Independent Formatting Operation of a USB-Based Storage Device

[0017] In many cases, a user may want to format a storage device to erase all content written to the storage device and restore the full capacity of the storage device. Examples of storage devices can include portable storage devices such as USB flash drives or other USB devices. For example, a user may want to format a USB flash drive to remove any viruses or malware that have infected the drive. Or a user may want to format the USB flash drive when giving it to another user or after receiving it from another user. A user may also want to format the USB flash drive after using it on a public host device (which can be used by many people). Generally, formatting a USB flash drive involves connecting the drive to a host (e.g., a computer, laptop, mobile phone, etc.) and using features or options provided by an operating system (OS) (e.g., Windows, Android, iOS, etc.) or other third - party applications to format the drive. However, in some cases, the host may not be readily available, and if the user cannot immediately access the host, the user may not be able to format the USB flash drive as desired.

[0018] To address these and other challenges, a storage device according to certain aspects can implement a host-independent formatting operation. For example, a USB flash drive can include a pinhole button that can be pressed to initiate formatting of the drive without a connection to a host and without any instructions from the host, such as previously stored instructions. The drive can determine whether the drive is connected to power, and if there is sufficient power, the drive can initiate formatting when the pinhole button is detected to be pressed. For example, formatting or a factory reset can be performed to remove data from the drive. The factory reset can include formatting and additional functions, such as deleting partitions and resetting user preferences. The USB flash drive can include an indicator, such as a light-emitting diode (LED) indicator, that can show whether the formatting is in progress or completed. In this way, a user can easily format the USB flash drive when needed without accessing a host, and the host-dependence of formatting can be eliminated. In many cases, antivirus software is not installed on the host, and host-independent formatting can provide a convenient way to ensure the security of drive usage and reduce the risk of infecting the host. Details related to a storage device for providing a host-independent formatting operation are provided below.

[0019] Data Storage Device

[0020] Figure 1 FIG. 7 is a diagram illustrating a data storage device 100 that provides a host-independent formatting operation according to certain embodiments. In some embodiments, the data storage device 100 includes a control circuit 120, a data interface 122, and a non-volatile storage medium 124 for controlling the data storage device 100. The control circuit 120 can include hardware and / or software (e.g., firmware), such as a formatting controller 126, for performing a formatting operation on the storage medium 124. The formatting controller 126 can be implemented in firmware that can run on a controller chip. In some specific implementations, the formatting controller 126 can be a dedicated hardware-based chip for performing the formatting operation. The control circuit 120 can also include additional functions. For example, the control circuit 120 can support file-based storage. The control circuit 120 can also include functions for managing data transfer of the data storage device 100.

[0021] The data storage device 100 can employ various storage technologies and / or form factors. For example, the data storage device 100 can be a solid-state drive (SSD) that uses semiconductor memory as the storage medium 124, a secure digital (SD) card, or a universal serial bus (USB) storage stick. In other specific implementations, the data storage device 100 can be a hard disk drive (HDD) that uses a disk as the storage medium 124 or a solid-state hybrid drive (SSHD) that uses a combination of semiconductor memory and disk technologies.

[0022] The storage medium 124 can utilize various types of non-volatile memory (NVM) to permanently store data. NVM is a type of computer memory that can retain the stored information even after a power outage. For example, the storage medium 124 can include one or more magnetic disks and / or semiconductor memories. The semiconductor memory can include any of various memory technologies, such as NAND memory and its variants, such as SLC (single-level cell), eMLC (enterprise multi-level cell), MLC (multi-level cell), TLC (triple-level cell), and QLC (quad-level cell). New emerging non-volatile memories, such as field-programmable or storage-class memories (SCM), such as ReRam, phase-change memory (PCM), and magnetoresistive random-access memory (MRAM), can also be used.

[0023] The data storage device 100 can include a small amount of volatile memory, such as random-access memory (RAM), to act as a cache for data. Such a cache can enable very fast access to the data stored thereon. In some embodiments, in addition to the storage medium 124, the data storage device 100 can also include auxiliary non-volatile memory. For example, the data storage device 100 can also include a read-only memory (ROM) in which firmware can be stored and / or a complementary metal-oxide semiconductor (CMOS) memory in which firmware settings can be stored.

[0024] In some embodiments, the control circuit 120 is configured to manage semiconductor memory or magnetic technology. For example, the control circuit 120 can include a memory or storage controller. In some embodiments, the control circuit 120 is configured to manage the data interface 122. For example, the control circuit 120 can include a USB controller. The control circuit 120 can include an embedded processor, an electrically erasable firmware ROM, RAM, an error-correction code (ECC) circuit, a head controller, a voice coil motor (VCM) controller, and / or a host electrical interface, such as serial ATA (SATA), USB, non-volatile memory express (NVMe), or serial-attached SCSI (SAS).

[0025] The data interface 122 may include connectors, cables, and / or protocols for connection, communication, and / or power supply between the host device and the data storage device 100. In some embodiments, the ports of the data interface 122 may enable the transmission of both data and power to the connected device. In some embodiments, the data interface 122 includes USB hardware and / or software. Various versions of USB may be used, such as USB 2.x, USB 3.x, or USB 4.x. The data interface 122 may include physical ports for coupling with connectors and cables. Various types of USB ports may be included on the data storage device, such as male or female Type-A, Type-B, Type-C, mini, and / or micro connectors. Other data interface standards may also be used, such as external SATA (eSATA), ExpressCard, FireWire (IEEE 1394), and Thunderbolt. The data interface 122 may include ports for connection to a cable or corresponding ports on the host device.

[0026] In some embodiments, the data storage device 100 does not have a battery. Instead, the data storage device 100 receives power via the data interface 122 from the connected host or via a wall adapter (e.g., USB charger, alternating current (AC) to direct current (DC) converter, etc.) that can be connected to the main power supply in a building. The USB port on the host device may provide power and act as a conduit for data transmission. For example, the data storage device 100 may be connected to a host system via a USB port, which typically provides 5 volts (V) of DC power, but a fast-charging USB port may provide DC power at a higher voltage.

[0027] Various types of host devices may be connected to the data storage device 100. Such host devices may include a phone 135 (such as a smartphone), electronic household appliances (not shown), a smart television (TV) (not shown), a video game device 134, a laptop computer 133, a tablet computer 132, a desktop computer (not shown), a wearable computer (not shown), a wall-powered storage device 137 (e.g., network-attached storage or a powered external drive), and / or other consumer electronic devices.

[0028] The data storage device 100 may be communicatively coupled to the host device via the data interface 122. The data storage device 100 may provide additional data storage to the connected device or facilitate the transmission of data to other host devices. The data storage device 100 may be directly connected (e.g., male port to female port) or via a cable to a physical connection port (e.g., USB) on the host device.

[0029] Host-Independent Formatting

[0030] Figure 2An example data storage device 200 for providing host-independent formatting operations in accordance with one or more embodiments is illustrated. In some embodiments, Figure 2 The components of may be similar to Figure 1 The components with similar names and / or reference numerals. For example, the data storage device 200 may be similar to Figure 1 The data storage device 100 in. Certain details regarding the data storage device 200 were described above in connection with Figure 1 are described.

[0031] As in the example of Figure 2 The data storage device 200 may be a USB flash drive or a memory stick. The storage device 200 may include a pinhole button 202. The pinhole button 202 may be pressed to initiate a formatting operation. For example, the pinhole button 202 may be pressed using a pin 206 provided by the storage device 200. The pinhole button 202 may be pressed for a specified duration or threshold period to initiate the formatting operation. The storage device 200 may determine whether it is connected to a power source 210 (e.g., a DC power supply / adapter / mobile power supply, etc.), and if the storage device 200 is connected to the power source 210, the formatting operation may be initiated. Depending on the embodiment, the formatting operation may include formatting of the storage device 200 or a factory reset of the storage device 200. Formatting of the storage device 200 may delete the data on the storage device 200. A factory reset of the storage device 200 may include formatting and additional functions. The additional functions may include deleting any partitions on the storage device 200 and / or resetting any user preferences to restore the storage device 200 to its factory settings. Initiation of the formatting operation and execution of the formatting operation do not require a connection to a host. When the formatting operation is being performed, the storage device 200 may remain connected to the power source 210. The storage device 200 may also include an indicator 204, such as an LED indicator. The indicator 204 may provide status information regarding the formatting operation. The indicator 204 may show whether the formatting operation is in progress or completed. For example, the LED may turn on at the start of the formatting operation, remain on while the formatting operation is in progress, and turn off when the formatting operation is completed. After the formatting operation is completed, the storage device 200 may disconnect from the power source 210.

[0032] A variety of types of buttons or switches can be used to implement the pinhole button 202. Examples of buttons or switches can include push buttons, toggle buttons, momentary switches, etc. A push button can be pressed and held in the pressed position (e.g., stuck). The push button can be pressed again and return to the normal position. A toggle button can be pressed and return to the normal position. When a push button or toggle button is pressed, an interrupt or command can be sent to the controller, and an associated function can be executed. Any suitable button or switch can be used. The pinhole button 202 can be placed inside the storage device 200 and pressed through a pinhole or orifice so that the button is not inadvertently pressed to trigger a formatting operation. As an example, the pinhole button 202 can be placed within a cover assembly of a USB flash drive. The pinhole button 202 can be connected to a printed circuit board (PCB). In some embodiments, the pinhole button 202 can be placed outside the storage device 200.

[0033] The pressing effect of the pinhole button 202 can vary according to the embodiment. For example, when pressed, the pinhole button 202 can be sticky or non-sticky. If the pressing effect of the pinhole button 202 is sticky, the associated action or function cannot be cancelled or eliminated by pressing the pinhole button 202 again. If the pressing effect of the pinhole button 202 is not sticky, the associated action or function can be cancelled or eliminated by pressing the pinhole button 202 again. In some cases, the pinhole button 202 can be stuck in the pressed position to avoid accidentally resetting the associated function or preventing misuse of the pinhole button 202.

[0034] The pinhole button 202 can be configured to perform various functions based on the press duration or press count. For example, a short press of the pinhole button 202 can be associated with a first function, while a long press of the pinhole button 202 can be associated with a second function. Short press and long press can be defined as having corresponding durations (e.g., a specified number of seconds, etc.). An appropriate amount of durations can be defined and used according to the number of available functions. For example, if three functions are available, short press, medium press, and long press can be defined. In some cases, the press count can be associated with different functions or activation / deactivation of functions. Multiple presses can be used to activate or deactivate functions. Two presses or three presses can be used depending on the situation. Many variations are possible.

[0035] The pinhole button 202 can be configured to act in various ways. As an example, if the pinhole button 202 is pressed while the storage device 200 is in the powered-on state, the pinhole button 202 can return to the normal position, but the function of subsequent presses can be stopped until the associated function is completed. In this way, errors caused by the user further pressing the pinhole button 202 can be prevented. As another example, if the pinhole button 202 is pressed while the storage device 200 is in the powered-off state, the pinhole button 202 can be stuck and held in the pressed position. When the storage device 200 is powered on next time, the storage device 200 can check the button state of the pinhole button 202 and initiate the associated function. After initiating the associated function, the pinhole button 202 can be released to the normal position, but the function of subsequent presses can be stopped until the associated function is completed. In some embodiments, further interruptions generated by pressing the pinhole button 202 can be handled by firmware, for example, by ignoring subsequent instructions after receiving the start instruction.

[0036] To continue with the formatting operation by pressing the pinhole button 202, the storage device 200 can determine whether the storage device 200 is connected to a power supply 210 capable of supplying power to the storage device 200. As an example, the power supply 210 can be a 5V DC power supply (e.g., an adapter). In some embodiments, the power supply 210 is a wall charger 210, such as a USB charger including a USB port for charging a USB device. Any suitable power supply can be used. In some cases, a compatible battery or a rechargeable mobile power supply can be used. In some embodiments, the power supply 210 can be an AC adapter. In certain embodiments, the storage device 200 can include a battery.

[0037] The storage device 200 can be coupled to a host for various data operations. For example, the USB male port / connector of a USB storage device can be connected to the USB female port / connector of a host. The USB storage device is capable of operating with a 5V DC input current supplied via the USB female port of the host. Examples of hosts can include a computer, a laptop, a mobile phone, etc. In some cases, the USB storage device can be coupled to a mobile phone via an On-The-Go (OTG) cable. A standard USB (Type A) port can have four (4) pins. Two (2) pins can be used for power supply, and two (2) pins can be used for data transfer. A description of the four pins is provided in Table 1 below.

[0038] Pin Number Pin Name Pin Description 1 VCC +5V Power Supply Pin 2 D- Differential Pair D- of Data Pins 3 D+ Differential Pair D+ of Data Pins 4 Ground Ground Connected to the Host

[0039] Table 1 - Example USB Pin Descriptions

[0040] Figure 3AShows the connection between the host 330 and the USB storage device 300. The connection between the host 330 and the USB storage device 300 can utilize four pins, including two power pins (e.g., +5V power pin, ground pin) and two data pins (e.g., data - pin and data + pin).

[0041] The storage device 200 can also be coupled to a power supply 210, such as a wall charger. A 5V DC power supply / adapter typically includes power pins but does not include data pins. Figure 3B Shows the connection between the power supply (5V DC) 310 and the USB storage device 300. The connection between the power supply 310 and the USB storage device 300 can include two power pins (e.g., +5V power pin, ground pin). When no data exchange occurs, the storage device 200 can determine that the storage device 200 is connected to the power supply 210 and not to the host.

[0042] The indicator 204 can provide status information related to the formatting operation. The indicator 204 can use various methods to provide information related to the formatting operation. For example, the indicator 204 can be an LED indicator. As an example, the LED can be turned on when the formatting operation is being performed and turned off when the formatting operation is completed. As another example, the LED can blink or use different colors to provide status information. The LED can use different blink rates or different colors to convey information. Various types of indicators can be used, for example, including one or more of an LED, a screen, an electrochromic display, an electronic sound, or a speaker module, etc.

[0043] For illustrative purposes, the host - independent formatting operation is described in connection with a USB flash drive, but the host - independent formatting operation can be applicable to any type of data storage device. For example, the host - independent formatting operation can be applicable to any storage device including at least one USB interface. Examples of storage devices can include external or portable storage devices, such as solid - state drives (SSDs). For example, details related to Figures 5 to 6 are provided regarding the formatting operation.

[0044] Figure 4 Is a block diagram illustrating an example data storage device 400 for providing a host - independent formatting operation according to one or more embodiments. In some embodiments, Figure 4 the components of Figures 1 to 2 can be similar to the components with similar names and / or reference numerals in Figures 1 to 2 . For example, the data storage device 400 can be similar to the data storage devices 100, 200 in Figures 1 to 2 . Certain details related to the data storage device 400 are described above in connection with

[0045] The data storage device 400 may include a control circuit 420, a data interface 422, and a storage medium 424. The storage device 400 may be connected to and communicate with a host 430 via the data interface 422. The control circuit 420 may include a boot module 450, an interrupt management module 452, an LED indicator module 454, and a formatting controller 426. The boot module 450 may manage the boot process for the storage device 400. The boot module 450 may determine whether the storage device 400 is connected to the host 430 or a power source. For example, when there is data transfer or message exchange related to device discovery or handshake related to device capability discovery, the boot module 450 may determine that the storage device 400 is connected to the host 430. When there is no data transfer or exchange or handshake, the boot module 450 may determine that the storage device 400 is connected to a power source other than the host. The interrupt management module 452 may manage interrupts associated with the storage device 400. The interrupts may be masked or temporarily disabled. For example, the interrupt management module 452 may mask some or all interrupts while a formatting operation is being performed. The interrupt management module 452 may unmask some or all interrupts after the formatting operation is completed. The LED indicator module 454 may manage one or more LEDs. For example, the LED indicator module 454 may turn on or off one or more LEDs, cause one or more LEDs to blink, etc., to provide status information related to the formatting operation. The formatting controller 426 may include a self-formatting module 456 and a factory reset module 458. The self-formatting module 456 may perform formatting of the storage device 400. The factory reset module 458 may perform a factory reset of the storage device 400. For example, the factory reset may include formatting and additional functions such as deleting partitions and resetting user preferences. In some embodiments, the factory reset module 458 may reset user preferences without deleting data and / or partitions. The storage medium 424 may include NAND memory. The NAND memory may be organized into one or more blocks. Depending on the embodiment, the storage device 400 and / or the control circuit 420 may include additional or fewer components. Depending on the embodiment, one or more components of the storage device 400 and / or the control circuit 420 may be combined or implemented separately.

[0046] Formatting Process

[0047] Figure 5 Illustrated is a workflow process 500 for providing host-independent formatting in a data storage device according to one or more embodiments. The workflow process 500 may be implemented by a data storage device (such as Figures 1 to 4 the data storage devices 100, 200, 400 therein). For example, the workflow process 500 may be executed in part or in whole by a controller of the data storage device. For illustrative purposes, the following is described in conjunction with Figure 4The data storage device 400 in [description] is used to explain the process 500. Regarding Figures 1 to 4 Some details related to the process 500 are explained in more detail. Depending on the implementation, the process 500 may include fewer or additional boxes, and these boxes may be executed in a different order than that illustrated.

[0048] The process 500 starts at box 505. At box 510, the data storage device 400 is connected to a power supply. For example, the power supply can be a USB 5V DC power supply / adapter. At box 515, the firmware (e.g., the boot module 450) can identify that the storage device 400 is connected to the power supply but not to the host. For example, when the storage device 400 is connected to the power supply, the boot module 450 can be executed. The firmware can check whether the storage device 400 is connected to the host or the power supply, for example, based on the USB handshake protocol. If there is no data transfer or message exchange, the firmware can determine that the storage device 400 is connected to the power supply. At box 520, the user presses the pinhole button available on the storage device 400. At box 525, the firmware (e.g., the interrupt management module 452) can detect the pinhole button interrupt. At box 530, the interrupt service routine masks all interrupts in the storage device 400 and calls the LED indicator module 454.

[0049] At box 535, the LED indicator module 454 can turn on the LED and call the self-formatting module 456 to initiate formatting. At box 540, the self-formatting module 456 can erase all the previous data on the storage device 400. The data can be erased one block at a time, and the storage device 400 can track the last erased block and the total number of erased blocks. If the power supply is disconnected during the formatting process, it may cause an error condition, and the storage device 400 can track the erased blocks so that once the power supply is restored, the storage device 400 can continue to erase the remaining blocks. For example, if an error condition occurs and formatting is initiated again at a later time, the storage device 400 can continue to erase the remaining blocks. At box 545, the storage device 400 can determine whether all blocks have been erased. If not all blocks have been erased at box 545, the process 500 can return to box 540 and continue to erase blocks one by one. If all blocks have been erased at box 545, the process 500 can continue to box 550. At box 550, the self-formatting module 456 can call the LED indicator module 454 with an active completion flag. At box 555, the LED indicator module 454 turns off the LED. All interrupts can be unmasked after formatting is completed. The process 500 ends at box 560.

[0050] Figure 6 Illustrated is a workflow process 600 for providing a host-independent factory reset in a data storage device according to one or more embodiments. The workflow process 600 can be performed by a data storage device (such asFigures 1 to 5 implemented by the data storage devices 100, 200, 400) in. For example, the workflow process 600 may be executed in part or in whole by the controller of the data storage device. For illustrative purposes, the process 600 will be explained below in connection with Figure 4 the data storage device 400 in. Regarding Figures 1 to 5 Some details related to the process 600 will be explained in more detail. Depending on the implementation, the process 600 may include fewer or additional blocks, and these blocks may be executed in an order different from that illustrated.

[0051] The process 600 starts at block 605. At block 610, the data storage device 400 is connected to a power source. For example, the power source may be a USB 5V DC power supply / adapter. At block 615, the firmware (e.g., the boot module 450) may identify that the storage device 400 is connected to the power source but not to the host. For example, when the storage device 400 is connected to the power source, the boot module 450 may be executed. The firmware may check whether the storage device 400 is connected to the host or the power source, for example, based on the USB handshake protocol. If there is no data transfer or message exchange, the firmware may determine that the storage device 400 is connected to the power source. At block 620, the user presses the pinhole button available on the storage device 400. At block 625, the firmware (e.g., the interrupt management module 452) may detect the pinhole button interrupt. At block 630, the interrupt service routine masks all interrupts in the storage device 400 and calls the LED indicator module 454.

[0052] At block 635, the LED indicator module 454 may turn on the LED and call the factory reset module 458 to initiate a factory reset. At block 640, the factory reset module 458 calls the self-formatting module 456 to initiate formatting. At block 645, the self-formatting module 456 may erase all previous data on the storage device 400. The data may be erased one block at a time, and the storage device 400 may keep track of the last block erased and the total number of blocks erased. If power is disconnected during the formatting process, it may result in an error condition, and the storage device 400 may keep track of the blocks erased so that once power is restored, the storage device 400 can continue to erase the remaining blocks. For example, if an error condition occurs and formatting and / or factory reset is initiated again at a later time, the storage device 400 can continue to erase the remaining blocks. At block 650, the storage device 400 may determine whether all blocks have been erased. If not all blocks have been erased at block 650, the process 600 may return to block 645 and continue to erase blocks one by one. If all blocks have been erased at block 650, the process 600 may continue to block 655. At block 655, the factory reset module 458 may delete the drive partition and reset the user preferences to factory settings. At block 660, the self-formatting module 456 may call the LED indicator module 454 with an active completion flag. At block 665, the LED indicator module 454 turns off the LED. All interrupts may be unmasked after the factory reset is complete. The process 600 ends at block 670.

[0053] In some cases, the factory reset may not include formatting and may only delete the partition and / or reset the user preferences without formatting the storage device 400. In such a case, the process 600 may proceed from block 635 to block 655, and the factory reset module 458 does not call the self-formatting module 456. At block 655, the factory reset module 458 may delete the drive partition and reset the user preferences to factory settings. At block 660, the factory reset module 458 may call the LED indicator module 454 with an active completion flag.

[0054] A storage device for providing host-independent formatting operations enables a user to initiate and perform formatting operations without accessing a host device. The storage device can be connected to a power source, and the formatting operation can be initiated by pressing a pinhole button on the storage device. Host-independent formatting operations can be useful in many situations, including when using a storage device on which the host may not have antivirus software installed. If the storage device may be potentially infected due to use with a host device (e.g., a public host device), the user can easily format the storage device before using it with another host device and ensure that it is safe to use with the other host device. In this way, a storage device for providing host-independent formatting operations can also reduce the risk of data theft and ensure data privacy. For example, USB flash drives can be shared or used by multiple users, and the users can format the drives before giving them to other users or after receiving them from other users. The examples described herein are provided for illustrative purposes, and many variations are possible. The features described in connection with various embodiments and / or examples can be implemented individually or in combination.

[0055] Figure 7 Illustrates a workflow process 700 for providing host-independent formatting operations in a data storage device according to one or more embodiments. The workflow process 700 can be implemented by a data storage device (such as Figures 1 to 6 the data storage devices 100, 200, 400 therein). For example, the workflow process 700 can be executed in part or in whole by a controller of the data storage device. For illustrative purposes, the process 700 is explained below in connection with Figure 2 the data storage device 200 therein. Certain details related to the process 700 are explained in more detail with respect to Figures 1 to 6 Depending on the embodiment, the process 700 can include fewer or additional blocks, and the blocks can be executed in a different order than that illustrated.

[0056] At block 705, the data storage device 200 may provide a pinhole button 202 in the data storage device 200. For example, the pinhole button 202 may be pressed by a user to initiate formatting of the data storage device 200 or a factory reset of the data storage device 200. In some embodiments, the data storage device 200 may include a pin 206 for pressing the pinhole button 202. The data storage device 200 may include a Universal Serial Bus (USB) interface. The data storage device 200 may include a Light Emitting Diode (LED) indicator 204 for providing status information related to formatting or factory reset. The data storage device 200 may turn on the LED indicator 204 in response to initiating formatting or factory reset. The data storage device 200 may turn off the LED indicator 204 in response to completing formatting or factory reset.

[0057] At block 710, the data storage device 200 may detect that the pinhole button 202 has been pressed. In some embodiments, the data storage device 200 may detect that the pinhole button has been pressed by receiving an interrupt, and the data storage device 200 may mask all interrupts to initiate formatting or factory reset.

[0058] At block 715, the data storage device 200 may detect that the data storage device 200 is coupled to a Direct Current (DC) power source 210. The DC power source 210 may include one or more of the following: a wall charger, a mobile power source, or a rechargeable battery.

[0059] At block 720, the data storage device 200 may initiate formatting of the data storage device 200 or a factory reset of the data storage device 200. For example, in addition to formatting of the data storage device 200, a factory reset of the data storage device 200 may include, for example, deleting partitions on the data storage device 200 and resetting user preferences. According to certain aspects, the data storage device 200 does not receive a command from a host to initiate formatting or factory reset of the data storage device 200. According to certain aspects, the data storage device 200 is not connected to a host during formatting or factory reset of the data storage device 200. In some embodiments, a factory reset of the data storage device 200 includes formatting of the data storage device 200. In certain embodiments, a factory reset of the data storage device 200 does not include formatting of the data storage device 200. In some embodiments, formatting of the data storage device 200 may perform formatting of selected partitions on the data storage device 200. In certain embodiments, formatting of the data storage device 200 may perform a full format of the data storage device 200.

[0060] Figure 8FIG. 0 is a diagram of a computing device 1000 in accordance with one or more embodiments. The computing device 1000 can execute instructions that enable the computing device 1000 to perform any one or more of the methodologies (e.g., operations, methods, functions, etc.) discussed herein. The computing device 1000 can be a mobile phone, smartphone, netbook computer, rack server, router computer, server computer, personal computer, mainframe computer, laptop computer, tablet computer, desktop computer, etc., in which an instruction set can be executed to cause the machine to perform any one or more of the methodologies discussed herein. In an alternative embodiment, the machine can be connected (e.g., networked) to other machines in a LAN, intranet, extranet, or the Internet. The machine can operate in a client-server network environment with the capabilities of a server machine. The machine can be a personal computer (PC), set-top box (STB), server, network router, switch or bridge, or any machine capable of executing a set of (or multiple sets of) instructions that specify actions to be taken by that machine (sequentially or otherwise). Further, although only a single machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the functions, operations, methods, algorithms, etc. discussed herein.

[0061] Example computing device 1000 includes a processing device 1002 (e.g., a processor, controller, central processing unit (CPU), etc.), a main memory 1004 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM)), a network access interface 1008, a direct access interface 1009, an output device 1010, an input device 1012, and a data storage device 1018, which communicate with each other via a bus 1030.

[0062] Processing device 1002 represents one or more general-purpose processing devices, such as a microprocessor, central processing unit, etc. More specifically, processing device 1002 can be a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or a combination of instruction sets. Processing device 1002 can also be one or more special-purpose processing devices, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, etc. Processing device 1002 is configured to execute storage module instructions 1035 for performing the operations and steps discussed herein.

[0063] The computing device 1000 may include a network access interface 1008 (e.g., a network interface card, a Wi-Fi interface, etc.) capable of communicating with a network. The computing device may also include a direct access interface 1009 (e.g., a USB interface, an external Serial Advanced Technology Attachment (eSATA) interface, a Thunderbolt interface, etc.). The computing device 1000 may further include an output device 1010 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)) and an input device 1012 (e.g., a mouse, a keyboard, etc.). In one embodiment, the output device 1010 and the input device 1012 may be combined into a single component or device (e.g., an LCD touch screen).

[0064] The data storage device 1018 may include a computer-readable storage medium 1028 having stored thereon one or more sets of instructions (e.g., storage module instructions 1035) embodying any one or more of the methods or functions described herein. The storage module instructions 1035 may also reside, completely or at least partially, within the main memory 1004 and / or within the processing device 1002 during execution thereof by the computing device 1000. The main memory 1004 and the processing device 1002 may also constitute a computer-readable medium. The instructions may also be sent or received via the network access interface 1008 and / or the direct access interface 1009.

[0065] Although the computer-readable storage medium 1028 is shown as a single medium in the exemplary embodiment, the term "computer-readable storage medium" should be considered to include a single medium or multiple media (e.g., a centralized or distributed database and / or associated caches and servers) storing one or more sets of instructions. The term "computer-readable storage medium" should also be considered to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by a machine and that causes the machine to perform any one or more of the methodologies of the present disclosure. The term "computer-readable storage medium" should accordingly be considered to include, but not be limited to, solid-state memory, optical media, and magnetic media.

[0066] General Comments

[0067] Those skilled in the art will understand that in some embodiments, other types of data storage systems may be implemented while remaining within the scope of the present disclosure. Additionally, the actual steps taken in the processes discussed herein may be different from those described or shown in the figures. Depending on the embodiment, some of the steps described above may be removed, and other steps may be added.

[0068] While certain embodiments have been described, these embodiments have been presented by way of example only and are not intended to limit the scope of protection. In fact, the novel methods and systems described herein can be embodied in many other forms. In addition, various omissions, substitutions, and changes can be made to the forms of the methods and systems described herein. The appended claims and their equivalents are intended to cover such forms or modifications as fall within the scope and spirit. For example, the various components illustrated in the figures can be implemented as software and / or firmware on a processor, ASIC / FPGA, or dedicated hardware. In addition, the features and attributes of the specific embodiments disclosed above can be combined in different ways to form additional embodiments, all of which fall within the scope of the present disclosure. Although the present disclosure provides certain preferred embodiments and applications, other embodiments that are obvious to those of ordinary skill in the art (including embodiments that do not provide all of the features and advantages described herein) are also within the scope of the present disclosure. Accordingly, the scope of the present disclosure is intended to be defined only by reference to the appended claims.

[0069] As used herein, the words "example" or "exemplary" are used to mean serving as an example, instance, or illustration. Any aspect or design described herein as "example" or "exemplary" is not necessarily to be construed as more preferred or advantageous than other aspects or designs. Instead, the use of the words "example" or "exemplary" is intended to present concepts in a concrete manner. As used in this application, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or". That is, unless otherwise specified or clear from the context, "X includes A or B" is intended to mean any natural inclusive permutation. That is, "X includes A or B" is satisfied in any of the foregoing cases if X includes A; X includes B; or X includes both A and B. Additionally, as used in this application and the appended claims, the article "a" should generally be construed to mean "one or more" unless otherwise specified or clear from the context indicating the singular form. Furthermore, the terms "embodiment" or "an embodiment" or "specific implementation" or "a specific implementation" used throughout do not necessarily refer to the same embodiment or specific implementation unless so described. Additionally, as used herein, the terms "first", "second", "third", "fourth", etc. are intended as labels to distinguish different elements and may not necessarily have an ordinal meaning in accordance with their numerical names.

[0070] The methods and processes described herein can be embodied in software code modules executed by one or more general-purpose and / or special-purpose computers / processors and are partially or fully automated via such software code modules. The term "module" can refer to logic embodied in hardware and / or firmware, or to a collection of software instructions written in a programming language (such as, for example, C or C++) that may have entry and exit points. Software modules can be compiled and linked into an executable program, installed in a dynamic link library, or be capable of being written in an interpreted programming language (such as, for example, BASIC, Perl, or Python). It should be understood that software modules may be capable of calling from other modules or from themselves, and / or may be called in response to detected events or interrupts. Software instructions can be embedded in firmware, such as erasable programmable read-only memory (EPROM). Software instructions can be stored on any type of computer-readable medium (e.g., non-transitory computer-readable medium) or other computer storage device or collection of storage devices. "Module" can also refer to one or more devices, components, systems, or subsystems that can conceptually implement related functions. It should also be understood that hardware modules can include connected logic units, such as gates and flip-flops, and / or can include programmable units, such as programmable gate arrays, application-specific integrated circuits, and / or processors. The modules described herein are preferably implemented as software modules, but can be represented in hardware and / or firmware. Additionally, although in some embodiments, modules can be compiled separately, in other embodiments, modules can represent a subset of the instructions of a separately compiled program and may not have an interface available to other logical program units.

Claims

1. A data storage device, comprising: Non-volatile memory; a pinhole button configured to be pressed; and A controller, the controller being configured to: Detecting that the pinhole button is pressed; detecting that the data storage device is coupled to a direct current (DC) power source; as well as A formatting of the data storage device or a factory reset of the data storage device is initiated.

2. The data storage device of claim 1, wherein the data storage device comprises a Universal Serial Bus (USB) interface. 3 . The data storage device of claim 1 , wherein the factory reset of the data storage device comprises deleting partitions on the data storage device and resetting user preferences. 4 . The data storage device of claim 1 , wherein the factory reset of the data storage device comprises a formatting of the data storage device. 5 . The data storage device of claim 1 , wherein the factory reset of the data storage device does not include formatting of the data storage device.

6. The data storage device of claim 1, wherein the DC power source comprises one or more of: a wall charger, a power bank, or a rechargeable battery. 7 . The data storage device of claim 1 , wherein the data storage device does not receive a command from a host to initiate the formatting or the factory reset.

8. The data storage device of claim 1, wherein the data storage device is not connected to a host during the formatting or the factory reset.

9. The data storage device of claim 1, further comprising a light emitting diode (LED) indicator for providing status information related to the formatting or the factory reset.

10. The data storage device of claim 9, wherein the controller is further configured to: turning on the LED indicator in response to initiating the formatting or the factory reset; and The LED indicator is turned off in response to completion of the formatting or the factory reset.

11. The data storage device of claim 1, further comprising a pin for pressing the pinhole button.

12. The data storage device of claim 1, wherein the formatting of the data storage device performs formatting of selected partitions on the data storage device.

13. The data storage device of claim 1, wherein the formatting of the data storage device performs a full formatting of the data storage device.

14. The data storage device of claim 1, wherein the controller is further configured to: detecting that the pinhole button is pressed by receiving an interrupt; and All interrupts are masked to initiate the format or the factory reset.

15. A method of performing formatting or factory resetting in a data storage device, the method comprising: providing a data storage device comprising a non-volatile memory and a pinhole button configured to be pressed; Detecting that the pinhole button is pressed; detecting that the data storage device is coupled to a direct current (DC) power source; as well as A formatting of the data storage device or a factory reset of the data storage device is initiated.

16. The method of claim 15, wherein the data storage device comprises a Universal Serial Bus (USB) interface.

17. The method of claim 15, wherein the factory reset of the data storage device comprises deleting partitions on the data storage device and resetting user preferences.

18. The method of claim 15, wherein the DC power source comprises one or more of: a wall charger, a power bank, or a rechargeable battery.

19. The method of claim 15, wherein the data storage device further comprises a light emitting diode (LED) indicator for providing status information related to the formatting or the factory reset.

20. A data storage device, the data storage device comprising: Non-volatile memory; a pinhole button configured to be pressed; and A controller device, the controller device being configured to: Detecting that the pinhole button is pressed; detecting that the data storage device is coupled to a direct current (DC) power source; as well as A formatting of the data storage device or a factory reset of the data storage device is initiated.