Method and system for fast, reliable and complete proof of memory state - Patents.com

JP7629919B2Active Publication Date: 2025-02-14CIGENT TECHNOLOGY INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2022528200
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-11-15
Filing Date
2020-10-29
Publication Date
2025-02-14
Estimated Expiration
2040-10-29

Smart Images

  • Figure 0007629919000001
    Figure 0007629919000001
  • Figure 0007629919000002
    Figure 0007629919000002
  • Figure 0007629919000003
    Figure 0007629919000003
Patent Text Reader

Abstract

A method for verifying erasure of data from a data storage device, the method including: retrieving a first metadata portion associated with a first data block included within a plurality of data blocks; determining a current content classification associated with the first data block and a current erasure state associated with the first data block based on the retrieved first metadata portion; and determining an erasure state associated with the first data block based on the current content classification associated with the first data block and the current erasure state associated with the first data block.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] FIELD OF THE DISCLOSURE This disclosure relates to verifying the erasure of data from a data storage device, and in particular to reliably and accurately verifying that data has been properly removed from a data storage device. [Background technology]

[0002] Data within computing devices can be highly sensitive and confidential. There is widespread industry concern regarding the ability (or inability) to reliably erase storage devices containing data. Currently, the industry standard method of verifying data erasure is to read all or a representative sample of the data through a user-accessible interface and then examine the returned information to determine whether it contains user-generated data. However, the current verification paradigm has several shortcomings.

[0003] One shortcoming of current validation paradigms stems from the use of user accessible interfaces to validate information on the storage device. These user accessible interfaces are designed to return only data with which the user can directly interact. For example, certain areas of the drive that may contain user data during the life of the storage device are made inaccessible to the user. This may be related to wear leveling, remapping of failed blocks, on-disk firmware storage, or over-provisioning for other internal device functions that prevent user access. Thus, these traditional validation paradigms are unable to access these other types of data.

[0004] Another drawback of the current verification paradigm is its lack of speed. As the capacity of storage devices increases, the time it takes to read all the data required to verify the erasure of a data storage device also increases. The larger the device, the longer it takes to verify. This problem has led to sampled verification algorithms that avoid full verification to save time. This results in incomplete and unreliable verification results.

[0005] Another drawback of the current verification paradigm is the lack of data security. Using current technology, the entity tasked with verifying the erasure is required to have access to any of the data stored on the storage device. In this case, if any data is left on the storage device, the possibility exists that unauthorized entities could access the data on the storage device (i.e., sensitive data) for any purpose.

[0006] Therefore, a solution is needed that allows for verification of data erasure from data storage devices while minimizing security concerns regarding unauthorized data access. Summary of the Invention

[0007] The present disclosure provides a description of a system and method for reliably and accurately verifying that data has been properly removed from a data storage device. The present disclosure addresses the shortcomings of the prior art by providing a fast, reliable, and complete verification interface that, by implementation, verifies any and all storage areas on a storage device through analysis of metadata, without transferring the data itself (i.e., sensitive data, user data, etc.) through the interface. The present disclosure provides a method for also verifying non-user data blocks, such as firmware data blocks and unallocated data blocks, within the storage device. In contrast, because firmware data blocks and unallocated data blocks are inaccessible through conventional interfaces, conventional verification methods would not be able to provide this level of verification of the present disclosure.

[0008] A method for verifying erasure of data from a data storage device, the data stored in the data storage device including a plurality of data blocks, the data stored in the data storage device including a metadata portion describing (1) a current content-based content classification associated with each data block and (2) an erased status associated with each data block, the method comprising: retrieving, by a verification interface of a computing device, a first metadata portion associated with a first data block included within the plurality of data blocks; and determining, by the verification interface of the computing device, a current content classification associated with the first data block based on the retrieved first metadata portion; a current content classification is one of a plurality of types of content classification including at least a first type of content classification and a second type of content classification; determining, by a validation interface of the computing device, a current erasure state associated with the first data block based on the retrieved first metadata portion, wherein the determined current erasure state is one of a plurality of types of erasure states including at least the first type of erasure state and the second type of erasure state; and determining, by the validation interface of the computing device, an erasure state associated with the first data block based on the current content classification associated with the first data block and the current erasure state associated with the first data block.

[0009] 11. A system for verifying erasure of data from a data storage device, wherein data stored in the data storage device includes a plurality of data blocks, the data stored in the data storage device including a metadata portion describing (1) a content classification based on a current content associated with each data block and (2) an erasure state associated with each data block, the system including a computing device and a verification interface of the computing device, the verification interface of the computing device configured to search a first metadata portion associated with a first data block included within the plurality of data blocks, the verification interface of the computing device configured to determine a current content classification associated with the first data block, the determined current content classification being one of a plurality of types of content classifications including at least a first type of content classification and a second type of content classification, the verification interface of the computing device configured to determine a current erasure state associated with the first data block, the determined current erasure state being one of a plurality of types of erasure states including at least the first type of erasure state and a second type of erasure state, and the verification interface of the computing device configured to determine an erasure state associated with the first data block based on the current content classification associated with the first data block and the current erasure state associated with the first data block.

[0010] The scope of the present disclosure is best understood from the following detailed description of exemplary embodiments, when read in conjunction with the accompanying drawings, in which: [Brief description of the drawings]

[0011] [Figure 1] 1 is a block diagram illustrating a high-level architecture of a computing device configured to verify the erasure of data from a data storage device, according to an example embodiment. [Diagram 2]1 is a block diagram illustrating a high level architecture of a computing device having a data storage device, according to an exemplary embodiment. [Diagram 3] 1 illustrates an exemplary block descriptor data structure, according to an exemplary embodiment. [Figure 4] 4 illustrates an exemplary decision block analysis chart, according to an exemplary embodiment. [Diagram 5] FIG. 2 is a flow diagram illustrating an exemplary process for verifying erasure of data from a data storage device, according to an exemplary embodiment. [Figure 6] FIG. 2 is a flow diagram illustrating an exemplary process for verifying erasure of data from a data storage device, according to an exemplary embodiment. [Figure 7] FIG. 1 is a block diagram illustrating a computer system architecture, in accordance with an exemplary embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0012] Further scope of applicability of the present disclosure will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description of the exemplary embodiments is intended for illustrative purposes only, and is therefore not intended to necessarily limit the scope of the present disclosure.

[0013] FIG. 1 illustrates one embodiment of a computing device 100. It will be apparent to one skilled in the art that the embodiment of computing device 100 illustrated in FIG. 1 is provided by way of example only and may not encompass all possible configurations of a computing device 100 suitable for performing functions as discussed herein. For example, computer system 700 illustrated in FIG. 7 and discussed in more detail below may be a suitable configuration of a computing device 100. Computing device 100 may be comprised of multiple modules, engines, devices, storage units, and other components that are specifically configured to perform functions as discussed herein. This includes verifying the erasure of data from data storage device 210, which may be included within a second computing device 200 or may be a standalone device 210.

[0014] The computing device 100 may include a receiving device 106. The receiving device 106 may be configured to receive data over one or more networks via one or more network protocols. In some cases, the receiving device 106 may be configured to receive data from another computing system. The other computing system may be located on the local network of the computing device 100 or outside the computing system via one or more communication methods, such as, for example, radio frequency, local area network, wireless area network, mobile network, Bluetooth, Internet, etc. In some embodiments, the receiving device 106 may be composed of multiple devices. The multiple devices may be, for example, different receiving devices for receiving data over different networks, such as a first receiving device for receiving data over a local area network and a second receiving device for receiving data over the Internet. The receiving device 106 may receive an electronically transmitted data signal, where data may be superimposed or encoded on the data signal and may be decoded, parsed, read, or obtained via reception of the data signal by the receiving device 106. In one example, the receiving device 106 can include a parsing module for parsing the received data signal to obtain data overlaid thereon. For example, the receiving device 106 can include a parsing program configured to receive and convert the received data signal into usable input for functions performed by the processing device to perform the methods and systems described herein.

[0015] The computing device 100 may also include a transmitting device 112. The transmitting device 112 may be configured to transmit data over one or more networks via one or more network protocols. In some cases, the transmitting device 112 may be configured to transmit data to a computing system. The computing system may be located on the local network of the computing device 100 or outside the computing system via one or more communication methods such as a local area network, a wireless area network, a cellular communication, Bluetooth, radio frequency, the Internet, etc. In some embodiments, the transmitting device 112 may be composed of multiple devices. The multiple devices may be, for example, different transmitting devices for transmitting data over different networks, such as a first transmitting device for transmitting data over a local area network and a second transmitting device for transmitting data over the Internet. The transmitting device 112 may electronically transmit a data signal. The data signal may be overlaid with data and parsed by a data receiving computing device. In some examples, the transmitting device 112 may include one or more modules. The modules overlay, encode, or format the data into a data signal suitable for transmission.

[0016] The computing device 100 may also include a communication module 104. The communication module 104 may be configured to transmit data between modules, engines, databases, storage, and other components of the computing device 100 (which may be referred to as, for example, a "device" or a "host device" of the computing device 100) for use in performing the functions discussed herein. The communication module 104 may comprise one or more communication types and utilize various communication methods for communication within the computing device. For example, the communication module 104 may comprise a bus, contact pin connectors, wires, and the like. In an embodiment, the communication module 104 may also be configured to communicate between internal components of the computing device 100 and external components of the computing device 100, such as, for example, an externally connected database, display device, input device, and the like. The computing device 100 may also include a processing device. The processing device may be configured to perform the functions of the computing device 100 discussed herein, as would be apparent to one of ordinary skill in the art. In an embodiment, the processing device may include and / or be comprised of multiple engines and / or modules specifically configured to perform one or more functions of the processing device. As used herein, the term "module" can be software or hardware that is specifically programmed to receive input, perform one or more processes using the input, and provide an output. The inputs, outputs, and processes performed by the various modules will be apparent to one of ordinary skill in the art based on this disclosure.

[0017] For example, the computing device 100 may include a query module 108. The query module 108 may be configured to execute queries on the data storage device 106, or other storage units, or data storage devices within or accessible by the computing device 100, e.g., associated with accessing the data storage device. For example, the query module 108 may be a module utilized by the host controller for execution of data commands associated with a namespace of the storage devices within the data storage device 106 and other storage units of the computing device 100. In another example, the query module 108 may be configured to execute a query to a verification module 110 (described below) to initiate a verification of a data erase of the data storage device. For example, when a user enters a command to initiate a verification of a data erase of the data storage device, the query module 108 may communicate with the verification module 110 in response to the requested command being executed (e.g., a command received from the user, etc.).

[0018] Computing device 100 may include a verification module 110. Verification module 110 may be configured to perform an erase verification of a data store, such as data store 210 of computing device 200 (described below). For example, when query module 108 communicates with verification module 110 to initiate a verification process, verification module 110 may determine (e.g., via sending device 112 and / or receiving device 106) the erase status of data contained on data store 210 based on information retrieved from metadata stored on data store 210.

[0019] Computing device 100 may include a memory 114. Memory 114 may be a data storage device that may be a read-only memory, a random access memory, or other type of memory that may be used by computing device 100 in executing and using OS applications. In some cases, the host controller may be configured to also act as a host controller for memory 114, or may be configured to monitor access to and use of data stored in memory 114. Memory 114 may be configured to store data used by computing device 100 in performing the functions discussed herein. Like a data storage device, memory 114 may be configured to store data using appropriate data formatting methods and schemas, and may be any appropriate type of memory. Memory 114 may include, for example, encryption keys and algorithms, communication protocols and standards, data formatting standards and protocols, program code for processor modules and application programs, and other data that may be suitable for use by computing device 100 in performing the functions disclosed herein, as would be apparent to one of ordinary skill in the art. In some embodiments, memory 114 may consist of or include a relational database. A relational database utilizes a structured query language to store, identify, modify, update, access, etc., structured data sets stored therein. In some cases, storage 114 may be external to computing device 100, for example, being part of a remote computing system that is external to computing device 100 but in communication with computing device 100.

[0020] 2 illustrates one embodiment of a computing device 200. Those skilled in the art will appreciate that the embodiment of computing device 200 illustrated in FIG. 2 is provided by way of example only and is not intended to be exhaustive of all possible configurations of a computing device 200 suitable for performing the functions discussed herein. For example, computer system 700 illustrated in FIG. 7 and discussed in more detail below may be a suitable configuration of a computing device 200.

[0021] The computing device 200 may include a receiving device 206. The receiving device 106 may be configured to receive data over one or more networks via one or more network protocols. In some cases, the receiving device 206 may be configured to receive data from another computing system. The other computing system may be located on the local network of the computing device 200 or outside the computing system via one or more communication methods, such as, for example, radio frequency, local area network, wireless area network, mobile network, Bluetooth, Internet, etc. In some embodiments, the receiving device 206 may be composed of multiple devices. The multiple devices may be, for example, different receiving devices for receiving data over different networks, such as a first receiving device for receiving data over a local area network and a second receiving device for receiving data over the Internet. The receiving device 206 may receive an electronically transmitted data signal, where data may be superimposed or encoded on the data signal and may be decoded, parsed, read, or obtained via reception of the data signal by the receiving device 206. In some cases, the receiving device 206 may include a parsing module for parsing the received data signal to obtain data overlaid thereon. For example, the receiving device 206 may include a parser configured to receive and convert the received data signal into usable input for functions performed by the processing device to perform the methods and systems described herein.

[0022] The computing device 200 may also include a transmitting device 208. The transmitting device 208 may be configured to transmit data over one or more networks via one or more network protocols. In some cases, the transmitting device 208 may be configured to transmit data to a computing system. The computing system may be located on the computing device's 200 local network or outside the computing system via one or more communication methods such as a local area network, a wireless area network, cellular communication, Bluetooth, radio frequency, the Internet, etc. In some embodiments, the transmitting device 208 may be comprised of multiple devices. The multiple devices may be, for example, different transmitting devices for transmitting data over different networks, such as a first transmitting device for transmitting data over a local area network and a second transmitting device for transmitting data over the Internet. The transmitting device 208 may electronically transmit a data signal, which may be overlaid with data and parsed by a receiving computing device. In some cases, the transmitting device 208 may include one or more modules for overlaying, encoding, or formatting data into a data signal suitable for transmission.

[0023] The computing device 200 may also include a communications module 204. The communications module 204 may be configured to transmit data between modules, engines, databases, storage, and other components of the computing device 200 (which may be referred to as, for example, a "device" or a "host device" of the computing device 200) for use in performing the functions discussed herein. The communications module 204 may be comprised of one or more communication types and may utilize various communication methods for communication within the computing device. For example, the communications module 204 may be comprised of a bus, contact pin connectors, wires, and the like. In an embodiment, the communications module 204 may also be configured to communicate between internal components of the computing device 200 and external components of the computing device 200, such as, for example, an externally connected database, display device, input device, and the like. The computing device 200 may also include a processing device. The processing device may be configured to perform the functions of the computing device 200 discussed herein, as would be apparent to one of ordinary skill in the art. In an embodiment, the processing device may include and / or be comprised of multiple engines and / or modules specifically configured to perform one or more functions of the processing device. As used herein, the term "module" can be software or hardware that is specifically programmed to receive input, perform one or more operations using the input, and provide an output. The inputs, outputs, and operations performed by the various modules will be apparent to one of ordinary skill in the art based on this disclosure.

[0024] The computing device 200 may include a data storage device 210. The data storage device 210 may be any type of device suitable for storing data. This includes hard disk drives, solid state drives, compact discs, digital video disks, magnetic tapes, and the like. The data storage device 210 may include a host controller or other application program that may be implemented in hardware, software, or a combination thereof, within the data storage device 210 that is configured to read and write data within the data storage device 210. The host controller may be configured to perform any function related to accessing and modifying data stored within the data storage device 210. This may include preventing access to one or more data files, sectors, or blocks within the data storage device 210, locking sectors or blocks from modification, reading or writing raw or processed data, and the like. As discussed herein, operations performed in the computing device 200 with respect to data stored within the data storage device 210 may be performed by or in conjunction with the host controller. According to the disclosed aspects, the data storage device 210 may be a standalone or separate device that may interact with the device 100.

[0025] According to an aspect, the data storage device 210 can be organized into addressable data collections. In an embodiment, the data collections can be physically located, logically imposed, and / or some combination thereof. The data collections can be formed or described as data blocks, where each data block can include one of different types of data. For example, the data blocks can be classified into one or more possible classification types based on the current contents of the respective blocks. The metadata portion 218 can indicate the classification type.

[0026] For example, a data block may be classified as a firmware data block 212 and may contain information or data that may currently be used by storage device 210 or internally by computing device 200 for device operation. In an embodiment, firmware data block 212 may contain non-user generated information or data, and may not include any user generated data.

[0027] In another example, the data block may be classified as a user data block 214 and may currently contain information that may have been generated by a user of the storage device 210 .

[0028] In another example, a data block may be classified as an unallocated data block 216 and may currently be an inactive data block in the storage device 210. For example, an unallocated data block 216 may be a data block that cannot currently be included within the set of active data blocks. In one embodiment, an unallocated data block 216 may have previously contained firmware data or user data. In some cases, an unallocated data block 216 may have never been allocated or contained any data.

[0029] According to an aspect, data blocks in storage device 210 can be in one of multiple possible erase states based on the presence (or lack thereof) of content in the respective blocks, and metadata portion 218 can indicate the erase state. For example, a block can be in an erased state if it has not yet been programmed with data or has not yet been programmed with data since the last erase. In another case, a block can be in a non-erased state, or an erased state, if it has currently been programmed with data or contains data.

[0030] According to disclosed aspects, the device 100 can search and / or inspect the metadata portion 218 included within the data storage device 210 to verify the erasure of data from the storage device 210. The metadata portion 218 can include, for each data block within the data storage device 210, a description of a content classification based on the current content associated with each of the data blocks included within the data storage device 210. The metadata portion 218 can include, for each data block within the data storage device 210, a description of an erasure state associated with each of the data blocks included within the data storage device 210. The device 100 can access the metadata portion 210 to quickly retrieve the metadata information and determine the erasure state of one or more of the individual storage blocks included within the data storage device 210, including blocks that are not currently accessible to the user (e.g., firmware block 212 and / or unallocated block 216). Because the metadata 218 does not include any user data, security concerns regarding unauthorized data access can be limited or non-existent for verifying the erasure of data on the data storage device 210.

[0031] In one embodiment, the query module 108 of the device 100 can receive the input and initiate a verification of the erasure of data on the data storage device 210 of another device 200. The query module 108 can communicate with the verification module 110 to initiate the verification process. In some cases, the verification module 110 can communicate with the sending device 112 to initiate communication with the device 200, e.g., via physical contact or wireless communication, e.g., via the receiving device 206 of the device 200. In some cases, the verification module 110 can initiate communication directly with the device 200 or the data storage device 210 to verify the erasure of data on the data storage device 210.

[0032] The verification module 110 may retrieve information from a metadata portion 218 of one or more data blocks contained within the data storage device 210. In some cases, the verification module 110 may communicate with the receiving device 106 to retrieve and / or receive information from the metadata portion 218, e.g., via a transmitting device 208 of the device 200, e.g., via physical contact or wireless communication. In other cases, the verification module 110 may initiate communication directly with the device 200 or the data storage device 210 to verify the erasure of data in the data storage device 210.

[0033] The validation module 110 may determine a current content classification associated with one or more data blocks contained within the data storage device 210 based on information from the retrieved metadata portion 218. The determined current content classification may be one of a plurality of types of content classification including at least a first type of content classification and a second type of content classification. In some cases, the content classification may include more than two types of content classification. For example, the content classification type of a block may include any of a firmware block 212 (e.g., a data block having non-user generated information that may be used internally by the storage device 210 or the device 200 for device operation), a user block 214 (e.g., a data block having user generated information), or an unallocated block 216 (e.g., an inactive data block).

[0034] The verification module 110 can determine a current erase state associated with one or more data blocks based on information from the retrieved metadata portion 218. The determined current erase state can be one of a plurality of types of erase states including at least a first type of erase state and a second type of erase state. For example, the erase state can be one of an erased state (e.g., a data block that has not yet been programmed with data or a data block that has not yet been programmed with data since a last erase) or an unerased state (e.g., a data block that has been programmed with data).

[0035] In an embodiment, the metadata portion 210 may be included within a respective block, such as, for example, each of the blocks 212, 214, 216, and may describe a content classification and / or status of the respective block 212, 214, 216. For example, the metadata portion 201 may be formatted as a data byte that may include eight data bits, and the validation module 110 may analyze the data bits included in the data byte to determine the content classification and / or status of the corresponding block.

[0036] 3 illustrates a block diagram showing an example configuration of a block descriptor 300. As illustrated in FIG. 3, one or more bits of the block descriptor 300 may correspond to one of a number of types of content classifications. For example, bit 6 may identify whether the corresponding block is an unallocated block 216, bit 5 may identify whether the corresponding block is a firmware block 212, and bit 4 may identify whether the corresponding block is a user block 214.

[0037] According to an aspect, a high value associated with a bit may indicate that a current content classification determined associated with the corresponding data block is the content classification of the content classification associated with that bit. For example, a high value for bit 6 may indicate that the block is an unallocated block 216. According to an aspect, a low value associated with a bit may indicate that a current content classification determined associated with the corresponding data block is different (or not the same) as the content classification associated with that bit. For example, a low value for bit 5 may indicate that the block is different (or not) than firmware block 212.

[0038] In some cases, the sign convention or value designation may be reversed, and a low value for bit 6 may indicate that the block is an unallocated block, and a high value for bit 5 may indicate that the block is different from (or is not) firmware block 212. According to one embodiment, a block should be classified as only one of the content classification types and cannot be classified as more than one type.

[0039] 3, one or more bits of the block descriptor 300 may correspond to one of several types of erased states. For example, bit 1 may identify whether the corresponding block is non-erased or unerased, and bit 0 may identify whether the corresponding block is erased.

[0040] According to an aspect, a high value associated with a bit may indicate that a current erase state determined associated with a corresponding data block is the erase state associated with that bit. For example, a high value of bit 1 may indicate that the block is not erased, while a high value of bit 0 may indicate that the block is erased. According to an aspect, a low value associated with a bit may indicate that a current erase state determined associated with a corresponding data block is different (or not the same) from the erase state associated with that bit. For example, a low value of bit 0 may indicate that the block is different (or not erased) from erased. According to an embodiment, a block should be classified as only one of the types of erase states, and cannot be classified as more than one type of erase state. In some cases, the sign convention or value designation may be reversed, and a low value of bit 0 may indicate that the block is erased, and a high value of bit 1 may indicate that the block is different (or not erased) from not erased (i.e., the block is erased).

[0041] According to an aspect, one or more bits included in the block descriptor 300 as shown in FIG. 3 may not be used or associated with a content classification or status of a block. These unused bits may be used for another purpose. In an embodiment, one or more other unused bits included in the block descriptor 300 as shown in FIG. 3 may describe other and / or additional content classifications or erasure states. In an embodiment, there may be more or less than three content classifications associated with the bits, or more or less than two erasure states associated with the bits. In an embodiment, other types or forms of the block descriptor 300 may be used in accordance with the disclosed aspects, such as, for example, being more than two bytes, or being some other format or table structure.

[0042] According to an aspect, the verification module 110 may retrieve or access the block descriptor data structure 300 (i.e., the data bytes of the metadata 218) from the device storage or from the data block, and may not retrieve other data or data bytes from the device storage or from the data block. As discussed above, this may prevent any security concerns regarding unauthorized data access of data stored within the data storage device 210. Additionally, because the verification module 110 may avoid reading and accessing additional data from the data blocks 212, 214, 216, the verification module 110 may verify the erased status of the blocks 212, 214, 216 much faster than if the verification module 110 read the remaining data of each data block.

[0043] For example, the data block may be 512 to 4096 bytes in size for magnetic media (solid state storage devices may be larger). Thus, the verification module 110 may read 1 / 512th of the amount of data (i.e., 1 byte of the block descriptor data structure 300) to verify the erased state, which significantly shortens the verification process. In addition, because conventional verification methods read data from other portions of the data block stored on the data storage device 210, these conventional verification methods are prevented from providing verification of firmware and / or erasure of unallocated data blocks.

[0044] The verification module 110 may determine an erasure status associated with one or more data blocks contained within the data storage device 210 based on information retrieved from the metadata portion 218. Figure 4 illustrates an exemplary decision block analysis chart 400, which illustrates exemplary erasure statuses associated with content classifications and erasure statuses.

[0045] According to the disclosed aspects, the verification module 110 can determine a verified erased state of a block. This can mean that the erasure of the corresponding data block is acceptable from the perspective of data safety. For example, as shown in FIG. 4, the erased state of the firmware block 212 can be verified even if the firmware block 212 is not determined to be in an erased state. This is because the data storage device 210 (or the device 200) may still require the data and information contained in the firmware block 212 for device operation. In another case, as shown in FIG. 4, the erased state of the user block 212 or the unallocated block 216 can be verified after the verification module 110 determines that the erased state of the corresponding block is erased, while the erased state can be unverified or unacceptable after the verification module 110 determines that the erased state of the user block 212 or the unallocated block 216 is not erased.

[0046] According to an aspect, information from block descriptor 300 and / or decision block analysis chart 400 may be presented or output from device 100 or from device 200 (e.g., after device 100 transmits this information back to device 200, etc.). For example, this information may be displayed on a display device associated with device 100 or device 200, or may be provided in some other manner. In some other cases, device 100 or device 200 may perform an action based on the erase status, such as, for example, protecting or initiating erasure of one or more data blocks having an unacceptable erase status.

[0047] In some embodiments, device 100 may be a separate device from device 200. In some other embodiments, the components (software and / or hardware) and functionality of device 100 may be embodied in a verification application module 220 included within device 200, as shown in FIG. 2. For example, verification application module 220 may be a software and / or hardware implementation of computing device 100. In these cases, verification application module 220 may operate to verify the erasure of data from data storage device 210 in the same or similar manner as discussed above, below, and throughout this specification with respect to device 100.

[0048] FIG. 5 illustrates an example flow diagram illustrating an example process 500 for verifying the erasure of data from data storage device 210, performed by, for example, verification module 110 or verification application module 220, according to an example embodiment.

[0049] The process 500 may begin at step 502. In step 502, the device 100 may establish communication with the data store 210 of the device 200. For example, the query module 108 may receive an instruction (e.g., input from a user or other device) to verify erasure of data in the data store 210. The query module 108 may communicate with the verification module 110. The verification module 110 may communicate with the receiving device 206 of the device 200 (e.g., via the transmitting device 112) to retrieve information from the metadata portion 218.

[0050] In step 504, the verification module 110 may retrieve information from the metadata portion 218. The metadata portion 218 may be stored as a data structure or table, such as the block descriptor data structure 300. The metadata portion 218 may be stored on the data storage device 210, in a data block in the data storage device 210, or in another location (e.g., in another area of ​​the device 200, etc.). The metadata portion 218 may describe (1) a content classification based on the current content associated with the respective data block, and (2) an erasure status associated with the respective data block. In some cases, the metadata portion 218 may be stored in each of the multiple data blocks 212, 214, 216 included in the data storage device 210. For example, the block descriptor data structure 300 may be stored in a first data byte in a first block, where the first data byte may include 8 data bits. According to an aspect, the verification module 110 may only retrieve, access, or read the metadata portion 218 associated with the data block. In some cases, the metadata portion 218 of one data block of the data store 210 may be searched and / or analyzed by the validation module 110. In other cases, the metadata portions 218 of two or more data blocks (or all of the data blocks) of the data store 210 may be searched and / or analyzed by the validation module 110.

[0051] According to an aspect, the verification module 110 can analyze one or more data bits included within the data bytes corresponding to the metadata 218. One or more of the analyzed data bits can correspond to one of a plurality of types of content classifications (e.g., firmware, user, or unallocated). One or more of the analyzed data bits can correspond to a current erase state (e.g., erased or unerased). As described above, a high value (or, in an embodiment, a low value) of a particular bit can indicate that the corresponding block is associated with the corresponding content classification or erase state of that particular bit, while a low value (or, in an embodiment, a high value) of a particular bit can indicate that the corresponding block is different from the corresponding content classification or erase state of that particular bit.

[0052] In step 506, the validation module 110 may determine a content classification associated with the data block based on the retrieved metadata 218 (e.g., based on the block identifier data structure 300). For example, the determined current content classification may be one of a plurality of types of content classification, including at least a first type of content classification and a second type of content classification. In some cases, there may be more than two types of content classification, such as three types. For example, as described above, a data block of the data storage device 210 may be classified as a firmware block 212 (e.g., having non-user generated information that may be used by the storage device 210 or internally by the computing device 200 for device operation), as a user block 214 (e.g., a data block having user generated information), or as an unallocated block 216 (e.g., an inactive data block).

[0053] In step 508, the verification module 110 may determine an erasure state associated with the data block based on the retrieved metadata 218 (e.g., based on the block identifier data structure 300). For example, the determined current erasure state may be one of a plurality of types of erasure states, including at least a first type of erasure state and a second type of erasure state. For example, as described above, a data block of the data storage device 210 may be determined to be erased (e.g., the block does not include data other than the metadata 218) or not erased (e.g., the block includes data other than the metadata 218).

[0054] In step 510, the verification module 110 may determine an erase state associated with the data block based on a current content classification associated with the data block and / or a current erase state associated with the first data block. According to an aspect, the erase state may be determined to be verified, which may mean that erasure of the corresponding data block is acceptable from a data security perspective. The erase state may be determined to be unverified, which may mean that erasure of the corresponding data block is unacceptable from a data security perspective.

[0055] For example, with respect to FIG. 4, the verification module 110 may determine that the erased state is verified in response to a current content classification associated with a data block indicative of a data block having non-user-generated information that may be used by the storage device 210 or internally by the computing device 200 for device operations. The verification module 110 may determine that the erased state is verified in response to a current content classification associated with a data block indicative of a data block having user-generated information or an inactive data block and an erased state associated with the data block indicative of a first type (e.g., erased) erased state. The verification module 110 may determine that the erased state is not verified in response to a current content classification associated with a data block indicative of a data block having user-generated information or an inactive data block and an erased state associated with the data block indicative of a second type (e.g., not erased) erased state. In some cases, the verification module 110 may determine that the erased state is verified in response to an erased state associated with a data block indicative of a data block not yet programmed with data or a data block not yet programmed with data since a last erase.

[0056] In step 512, the verification module 110 may evaluate the erased state of the analyzed data block. If the erased state is verified ("YES"), the process 500 may end. If the erased state is not verified ("NO"), the process 500 may proceed to step 514. In step 514, the device 100 or device 200 may perform an action. For example, the device 100 or device 200 may protect the data block (or blocks) having the unverified erased state or may initiate erasure of one or more data blocks having the unverified erased state. In an embodiment, the verification module 110 may repeat one or more of the steps of the process 500 to further evaluate and / or verify the erasure of data from the data storage device 210 (e.g., for the unverified data blocks). For example, the process 500 (or any portion thereof) may be repeated, as indicated by the arrow from step 514 to step 502. In some cases, the process 500 may end after determining the unverified erased state of the block in step 512. In some cases, process 500 may end after performing the action in step 514 .

[0057] 6 illustrates an exemplary method for verifying the erasure of data from data storage device 210, performed, for example, by verification module 110 or by verification application module 220. Data storage device 210 may include a plurality of data blocks, where data stored within the data storage device includes a metadata portion (e.g., metadata portion 218) that describes (1) a current content-based content classification associated with each data block and (2) an erasure status associated with each data block. In an embodiment, each of a plurality of data blocks included within data storage device 210 may include a metadata portion (e.g., metadata portion 218).

[0058] In step 602, the validation module 110 may retrieve a first metadata portion associated with a first data block contained within the plurality of data blocks, according to disclosed aspects.

[0059] In step 604, the validation module 110 may determine a current content classification associated with the first data block based on the retrieved first metadata portion, the determined current content classification being one of a plurality of types of content classifications, the content classification including at least a first type of content classification and a second type of content classification.

[0060] In step 606, the verification module 110 may determine a current erase state associated with the first data block based on the retrieved first metadata portion, the determined current erase state being one of a plurality of types of erase states, the plurality of types of erase states including at least a first type of erase state and a second type of erase state.

[0061] In step 608, the verification module 110 may determine an erasure status associated with the first data block based on a current content classification associated with the first data block and a current erasure status associated with the first data block.

[0062] 6, the searching step is performed for each of the plurality of data blocks, and the determining step is performed for each of the plurality of data blocks. In some cases, an action can be performed based on the determined erase status, such as further verifying the erasure of the unverified data blocks, protecting the data of the unverified data blocks, or erasing the data of the unverified data blocks.

[0063] <Computer System Architecture> 7 illustrates a computer system 700 in which embodiments of the present disclosure, or portions thereof, can be implemented as computer readable code. For example, computing device 100 of FIG. 1 and / or computing device 200 of FIG. 2 can be implemented in computer system 700 using hardware, software, firmware, a non-transitory computer readable medium having instructions stored thereon, or a combination thereof, and can be implemented in one or more computer systems or other processing systems. Hardware, software, or any combination thereof can embody modules and components used to implement the methods of FIG. 5 and FIG. 6.

[0064] Where programmable logic is used, such logic may be executed on commercially available processing platforms configured with executable software code to become special purpose computers or special purpose devices (e.g., programmable logic arrays, application specific integrated circuits, etc.). Those skilled in the art will appreciate that embodiments of the disclosed subject matter may be implemented using a variety of computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframe computers, computers linked with distributed functions or clustered, as well as pervasive or miniature computers that may be embedded in virtually any device. For example, the above-described embodiments may be implemented using at least one processor unit and a memory unit.

[0065] A processor unit or device as discussed herein may be a single processor, multiple processors, or a combination thereof. A processor device may have one or more processor "cores." The terms "computer program medium," "non-transitory computer-readable medium," and "computer usable medium" as discussed herein are generally used to refer to tangible media, such as removable storage unit 718, removable storage unit 722, and a hard disk installed in hard disk drive 712.

[0066] Various embodiments of the present disclosure are described with respect to this exemplary computer system 700. After reading this description, it will become apparent to one of ordinary skill in the art how to implement the present disclosure using other computer systems and / or computer architectures. Although operations may be described as sequential processes, some of the operations may in fact be performed simultaneously in parallel and / or in a distributed environment, using program code stored locally or remotely for access by single or multi-processor machines. Furthermore, in an embodiment, the order of operations may be rearranged without departing from the spirit of the disclosed subject matter.

[0067] The processor unit 704 may be a special purpose or general purpose processor unit specially configured to perform the functions discussed herein. The processor unit 704 may be connected to a communication infrastructure 706, which may be, for example, a bus, a message queue, a network, a multi-core message passing scheme. The network may be any network suitable for performing the functions as disclosed herein, and may include a local area network (LAN), a wide area network (WAN), a wireless communication network (e.g., WiFi), a cellular network, a satellite network, the Internet, optical fiber, coaxial cable, infrared, radio frequency (RF), or any combination thereof. Other suitable network types and configurations will be apparent to those skilled in the art. The computer system 700 may also include a primary memory 708 (e.g., random access memory, read only memory, etc.) and may also include a secondary memory 710. The secondary memory 710 may include a hard disk drive 712 and a removable storage drive 714, which may be, for example, a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, etc.

[0068] The removable storage drive 714 can read from and / or write to the removable storage unit 718 in a well-known manner. The removable storage unit 718 can include a removable storage medium that can be read from and written to by the removable storage drive 714. For example, if the removable storage drive 714 is a floppy disk drive or a universal serial bus port, the removable storage unit 718 can be a floppy disk or a portable flash drive, respectively. In one embodiment, the removable storage unit 718 can be a non-transitory computer-readable recording medium.

[0069] In some embodiments, secondary storage 710 may include alternative means for allowing computer programs or other instructions to be loaded into computer system 700, such as removable storage unit 722 and interface 720. Examples of such means may include program cartridges and cartridge interfaces (e.g., found in video game systems), removable memory chips (e.g., EEPROM, PROM, etc.) and associated sockets, and other removable storage units 722 and interfaces 720 as would be apparent to one skilled in the art.

[0070] Data stored in computer system 700 (e.g., primary memory 708 and / or secondary memory 710) may be stored on any type of suitable computer-readable medium, such as optical storage devices (e.g., compact discs, digital versatile discs, Blu-ray discs, etc.) or magnetic tape storage devices (e.g., hard disk drives). The data may be organized in any type of suitable database configuration, such as a relational database, a Structured Query Language (SQL) database, a distributed database, an object database, etc. The most suitable configurations and storage types will be apparent to those skilled in the art.

[0071] Computer system 700 may also include a communications interface 724. Communications interface 724 may be configured to allow software and data to be transferred between computer system 700 and external devices. Exemplary communications interface 724 may include a modem, a network interface (e.g., an Ethernet card), a communications port, a PCMCIA slot and card, and the like. The software and data transferred via communications interface 424 may be in the form of a signal. This may be an electronic signal, an electromagnetic signal, an optical signal, or other signal as would be apparent to one skilled in the art. The signal may travel over communications path 726. This may be configured to transmit signals and may be implemented using wire, cable, optical fiber, a telephone line, a cellular phone link, a radio frequency link, and the like.

[0072] The computer system 700 may further include a display interface 702. The display interface 702 may be configured to allow data to be transferred between the computer system 700 and an external display device 730. Exemplary display interfaces 702 may include a high-definition multimedia interface (HDMI), a digital visual interface (DVI), a video graphics array (VGA), etc. The display device 730 may be any suitable type of display device for displaying data transmitted via the display interface 702 of the computer system 700, including a cathode ray tube (CRT) display, a liquid crystal display (LCD), a light emitting diode (LED) display, an electrostatic touch display, a thin film transistor (TFT) display, etc.

[0073] The computer program medium and computer usable medium can refer to storage units such as the main memory 708 and the secondary memory 710. This can be a memory semiconductor (e.g., DRAM, etc.). These computer program products can be a means for providing software to the computer system 700. Computer programs (e.g., computer control logic) can be stored in the main memory 708 and / or the secondary memory 710. Also, the computer programs can be received via the communication interface 724. Such computer programs, when executed, can enable the computer system 700 to perform the present methods as discussed herein. In particular, the computer programs, when executed, can enable the processor unit 704 to perform the methods illustrated by FIG. 5 and FIG. 6 as discussed herein. Thus, such computer programs can represent a control unit of the computer system 700. If the present disclosure is implemented using software, the software can be stored in the computer program product and loaded into the computer system 700 using the removable storage drive 714, the interface 720, and the hard disk drive 712, or the communication interface 724.

[0074] The processor unit 704 may include one or more modules or engines configured to perform the functions of the computer system 700. Each of the modules or engines may be implemented using hardware. Also, in some cases, each of the modules or engines may utilize software such as program code and / or programs stored in the main memory 708 or secondary memory 710. In such cases, the program code may be compiled by the processor unit 704 (e.g., by a compilation module or engine) prior to execution by the hardware of the computer system 700. For example, the program code may be source code written in a programming language that is translated into a low-level language, such as assembly language or machine language, for execution by the processor unit 704 and / or any additional hardware components of the computer system 700. The process of compilation may include the use of lexical analysis, preprocessing, syntax analysis, semantic analysis, syntax-driven transformation, code generation, code optimization, and any other techniques that may be suitable for translating the program code into a low-level language suitable for controlling the computer system 700 to perform the functions disclosed herein. As will be apparent to those skilled in the art, the result of such processing is a computer system 700 that is uniquely programmed and specially configured to perform the functions described above.

[0075] Technology consistent with this disclosure provides, among other things, features, systems and methods for monitoring and controlling data access. While various exemplary embodiments of the disclosed systems and methods have been described above, it should be understood that they have been presented for purposes of illustration only, and not limitation. It is not intended to be exhaustive or to limit the disclosure to the precise form disclosed. Modifications and variations are possible in light of the above teachings, or can be acquired from the practice of the present disclosure without departing from the breadth or scope thereof.

Claims

1. 1. A method for verifying erasure of data from a data storage device, the data stored within the data storage device comprising a plurality of data blocks, the data stored within the data storage device comprising a metadata portion describing (1) a current content-based content classification associated with each data block, and (2) an erasure status associated with each data block, the method comprising: retrieving, via a validation interface of a computing device, a first metadata portion associated with a first data block included within the plurality of data blocks; determining, by the validation interface of the computing device, a current content classification associated with the first data block based on the retrieved first metadata portion, the determined current content classification being one of a plurality of types of content classifications including at least a first type of content classification and a second type of content classification, the first type of content classification and the second type of content classification being respectively associated with different ones of data blocks having non-user generated information used internally for device operation, data blocks having user generated information, or inactive data blocks; determining, by the verification interface of the computing device, a current erasure state associated with the first data block based on the retrieved first metadata portion, the determined current erasure state being one of a plurality of types of erasure states including at least a first type of erasure state and a second type of erasure state; determining, by the verification interface of the computing device, an erase status associated with the first data block based on the current content classification associated with the first data block and the current erase status associated with the first data block; A method comprising:

2. 2. The method of claim 1, wherein the first metadata portion is stored within a block descriptor data structure contained within the first data block.

3. 3. The method of claim 2, wherein the block descriptor data structure is stored within a first data byte in the first data block, the first data byte including 8 data bits, the first data byte being retrieved by the verification interface, and other data bytes of the first data block not being retrieved by the verification interface.

4. 4. The method of claim 3, wherein the current content classification of the first data block is determined by analyzing a plurality of the data bits contained within the data bytes in the first data block, each of the analyzed data bits corresponding to one of the plurality of content classifications.

5. 5. The method of claim 4, one of a high value or a low value is associated with a first bit of the analyzed bits, the first bit indicating that the determined current content classification associated with the first data block is a content classification of the content classification associated with the first bit of the analyzed bits; the other of the high value or the low value is associated with a second bit of the analyzed bits, the second bit indicating that the current content classification associated with the first data block differs from the content classification associated with the second bit of the analyzed bits.

6. 4. The method of claim 3, wherein the current erase state of the first data block is determined by analyzing a plurality of the data bits contained within the data bytes in the first data block, each of the analyzed data bits corresponding to one of the plurality of types of erase states.

7. 7. The method of claim 6, one of a high value or a low value is associated with a first bit of the analyzed bits, the first bit indicating that the determined current erase state associated with the first data block is an erase state of the erase state associated with the first bit of the analyzed bits; the other of the high value or the low value is associated with a second bit of the analyzed bits, the second bit indicating that the current erase state associated with the first data block is different from the erase state associated with the second bit of the analyzed bits.

8. 2. The method of claim 1, wherein the determined erase state associated with the first data block is: determining that the erased state is verified in response to the current content classification associated with the first data block indicating a data block having non-user generated information used internally by the storage device for device operations; and determining that the erase status is verified in response to the current content classification associated with the first data block indicating a data block having user generated information or an inactive data block and the erase status associated with the first data block indicating the first type of erase status; and determining, in response to the current content classification associated with the first data block indicating a data block having user generated information or an inactive data block and the erase status associated with the first data block indicating the second type of erase status, that the erase status is not verified; The method is determined according to

9. 2. The method of claim 1, wherein the determined current content classification is one of a plurality of types of content classification including at least a first type of content classification, a second type of content classification, and a third type of content classification.

10. 10. The method of claim 9, the first type of content classification is associated with non-user generated information used internally for device operation; the second type of content classification is associated with user-generated information; The method of claim 1, wherein the third type of content classification is associated with inactive data blocks.

11. 10. The method of claim 1 , the first type of erased state is associated with a data block that has not yet been programmed with data or has not yet been programmed with data since the last erase; The method of claim 1, wherein the second type of erased state is associated with data blocks that have been programmed with data.

12. 12. The method of claim 11, wherein the determined erase state associated with the first data block is: in response to the erased state associated with the first data block indicating a data block not yet programmed with data or not yet programmed with data since a last erase, determining that the erased state is verified; determining that the erase status is verified in response to the current content classification associated with the first data block indicating a data block having user generated information or an inactive data block and the erase status associated with the first data block indicating the first type of erase status; and determining, in response to the current content classification associated with the first data block indicating a data block having user generated information or an inactive data block and the erase status associated with the first data block indicating the second type of erase status, that the erase status is not verified; The method is determined according to

13. 2. The method of claim 1, wherein the searching step is performed for each of the plurality of data blocks, and the determining step is performed for each of the plurality of data blocks.

14. 1. A system for verifying erasure of data from a data storage device, the data stored within the data storage device comprising a plurality of data blocks, the data stored within the data storage device comprising a metadata portion describing (1) a current content-based content classification associated with each data block, and (2) an erasure status associated with each data block, the system comprising: A computing device; a verification interface of the computing device; the validation interface of the computing device is configured to retrieve a first metadata portion associated with a first data block included within the plurality of data blocks; the validation interface of the computing device is configured to determine a current content classification associated with the first data block, the determined current content classification being one of a plurality of types of content classification including at least a first type of content classification and a second type of content classification, the first type of content classification and the second type of content classification being respectively associated with different ones of a data block having non-user generated information used internally for device operation, a data block having user generated information, or an inactive data block; the verification interface of the computing device is configured to determine a current erase state associated with the first data block, the determined current erase state being one of a plurality of types of erase states including at least a first type of erase state and a second type of erase state; the verification interface of the computing device is configured to determine an erase state associated with the first data block based on the current content classification associated with the first data block and the current erase state associated with the first data block.

15. 15. The system of claim 14, wherein the first metadata portion is stored within a block descriptor data structure contained within the first data block.

16. 16. The system of claim 15, wherein the block descriptor data structure is stored within a first data byte in the first data block, the first data byte including 8 data bits, the first data byte being retrieved by the verification interface, and other data bytes of the first data block not being retrieved by the verification interface.

17. 17. The system of claim 16, wherein the current content classification of the first data block is determined by analyzing a plurality of the data bits contained within the data bytes in the first data block, each of the analyzed data bits corresponding to one of the plurality of content classifications.

18. 20. The system of claim 17, one of a high value or a low value is associated with a first bit of the analyzed bits, the first bit indicating that the determined current content classification associated with the first data block is a content classification of the content classification associated with the first bit of the analyzed bits; the other of the high value or the low value is associated with a second bit of the analyzed bits, the second bit indicating that the current content classification associated with the first data block differs from the content classification associated with the second bit of the analyzed bits.

19. 17. The system of claim 16, wherein the current erase state of the first data block is determined by analyzing a plurality of the data bits contained within the data bytes in the first data block, each of the analyzed data bits corresponding to one of the plurality of types of erase states.

20. 20. The system of claim 19, one of a high value or a low value is associated with a first bit of the analyzed bits, the first bit indicating that the determined current erase state associated with the first data block is an erase state of the erase state associated with the first bit of the analyzed bits; the other of the high value or the low value is associated with a second bit of the analyzed bits, the second bit indicating that the current erase state associated with the first data block is different from the erase state associated with the second bit of the analyzed bits.

21. 15. The system of claim 14, wherein the determined erase state associated with the first data block is: determining that the erased state is verified in response to the current content classification associated with the first data block indicating a data block having non-user generated information used internally by the storage device for device operations; and determining that the erase status is verified in response to the current content classification associated with the first data block indicating a data block having user generated information or an inactive data block and the erase status associated with the first data block indicating the first type of erase status; and determining, in response to the current content classification associated with the first data block indicating a data block having user generated information or an inactive data block and the erase status associated with the first data block indicating the second type of erase status, that the erase status is not verified; The system is determined according to

22. 15. The system of claim 14, wherein the determined current content classification is one of a plurality of types of content classification including at least a first type of content classification, a second type of content classification, and a third type of content classification.

23. 23. The system of claim 22, the first type of content classification is associated with non-user generated information used internally for device operation; the second type of content classification is associated with user-generated information; The third type of content classification is associated with inactive data blocks.

24. 15. The system of claim 14, the first type of erased state is associated with a data block that has not yet been programmed with data or has not yet been programmed with data since the last erase; The second type of erased state is associated with data blocks that have been programmed with data.

25. 25. The system of claim 24, wherein the determined erase state associated with the first data block is: in response to the erased state associated with the first data block indicating a data block not yet programmed with data or not yet programmed with data since a last erase, determining that the erased state is verified; determining that the erase status is verified in response to the current content classification associated with the first data block indicating a data block having user generated information or an inactive data block and the erase status associated with the first data block indicating the first type of erase status; and determining, in response to the current content classification associated with the first data block indicating a data block having user generated information or an inactive data block and the erase status associated with the first data block indicating the second type of erase status, that the erase status is not verified; The system is determined according to

26. 15. The system of claim 14, wherein the searching step is performed for each of the plurality of data blocks, and the determining step is performed for each of the plurality of data blocks.

27. A method for verifying erasure of data from a data storage device, the data stored within the data storage device comprising a plurality of data blocks, the data stored within the data storage device comprising: (1) a content classification based on a current content associated with each data block; and (2) a metadata portion describing an erasure status associated with each of the data blocks, the method comprising: retrieving, by a validation interface of a computing device, a first metadata portion associated with a first data block included within the plurality of data blocks, the first metadata portion being stored within a block descriptor data structure included within the first data block, the block descriptor data structure being stored within a first data byte within the first data block, the first data byte comprising eight data bits, the first data byte being retrieved by the validation interface, and other data bytes of the first data block not being retrieved by the validation interface; determining, by the verification interface of the computing device, a current content classification associated with the first data block based on the retrieved first metadata portion, the determined current content classification being one of a plurality of types of content classification including at least a first type of content classification and a second type of content classification; determining, by the verification interface of the computing device, a current erasure state associated with the first data block based on the retrieved first metadata portion, the determined current erasure state being one of a plurality of types of erasure states including at least a first type of erasure state and a second type of erasure state; determining, by the verification interface of the computing device, an erase status associated with the first data block based on the current content classification associated with the first data block and the current erase status associated with the first data block; A method comprising:

28. A method for verifying erasure of data from a data storage device, the data stored within the data storage device comprising a plurality of data blocks, the data stored within the data storage device comprising: (1) a content classification based on a current content associated with each data block; and (2) a metadata portion describing an erasure status associated with each of the data blocks, the method comprising: retrieving, via a validation interface of a computing device, a first metadata portion associated with a first data block included within the plurality of data blocks; determining, by the validation interface of the computing device, a current content classification associated with the first data block based on the retrieved first metadata portion, the determined current content classification being one of a plurality of types of content classification including at least a first type of content classification, a second type of content classification, and a third type of content classification, the first type of content classification being associated with non-user generated information used internally for device operation, the second type of content classification being associated with user generated information, and the third type of content classification being associated with inactive data blocks; determining, by the verification interface of the computing device, a current erasure state associated with the first data block based on the retrieved first metadata portion, the determined current erasure state being one of a plurality of types of erasure states including at least a first type of erasure state and a second type of erasure state; determining, by the verification interface of the computing device, an erase status associated with the first data block based on the current content classification associated with the first data block and the current erase status associated with the first data block; A method comprising:

29. A method for verifying erasure of data from a data storage device, the data stored within the data storage device comprising a plurality of data blocks, the data stored within the data storage device comprising: (1) a content classification based on a current content associated with each data block; and (2) a metadata portion describing an erasure status associated with each of the data blocks, the method comprising: retrieving, via a validation interface of a computing device, a first metadata portion associated with a first data block included within the plurality of data blocks; determining, by the verification interface of the computing device, a current content classification associated with the first data block based on the retrieved first metadata portion, the determined current content classification being one of a plurality of types of content classification including at least a first type of content classification and a second type of content classification; determining, by the verification interface of the computing device, a current erasure state associated with the first data block based on the retrieved first metadata portion, the determined current erasure state being one of a plurality of types of erasure states including at least a first type of erasure state and a second type of erasure state; determining, by the verification interface of the computing device, an erase status associated with the first data block based on the current content classification associated with the first data block and the current erase status associated with the first data block; Including, the first type of erased state is associated with a data block that has not yet been programmed with data or has not yet been programmed with data since a last erase, and the second type of erased state is associated with a data block that has been programmed with data; The determined erase state associated with the first data block is: in response to the erased state associated with the first data block indicating a data block not yet programmed with data or not yet programmed with data since a last erase, determining that the erased state is verified; determining that the erase status is verified in response to the current content classification associated with the first data block indicating a data block having user generated information or an inactive data block and the erase status associated with the first data block indicating the first type of erase status; and determining, in response to the current content classification associated with the first data block indicating a data block having user generated information or an inactive data block and the erase status associated with the first data block indicating the second type of erase status, that the erase status is not verified; The method is determined according to 30. A system for verifying erasure of data from a data storage device, the data stored in the data storage device comprising a plurality of data blocks, the data stored in the data storage device comprising: (1) a content classification based on a current content associated with each data block; and (2) a metadata portion describing an erasure status associated with each data block, the system comprising: A computing device; a verification interface of the computing device; the verification interface of the computing device is configured to retrieve a first metadata portion stored in a block descriptor data structure associated with a first data block included in the plurality of data blocks and included in the first data block, the block descriptor data structure being stored in a first data byte in the first data block, the first data byte including 8 data bits, the first data byte being retrieved by the verification interface, and other data bytes of the first data block not being retrieved by the verification interface; the validation interface of the computing device is configured to determine a current content classification associated with the first data block, the determined current content classification being one of a plurality of types of content classification including at least a first type of content classification and a second type of content classification; the verification interface of the computing device is configured to determine a current erase state associated with the first data block, the determined current erase state being one of a plurality of types of erase states including at least a first type of erase state and a second type of erase state; the verification interface of the computing device is configured to determine an erase state associated with the first data block based on the current content classification associated with the first data block and the current erase state associated with the first data block.

31. A system for verifying erasure of data from a data storage device, the data stored in the data storage device comprising a plurality of data blocks, the data stored in the data storage device comprising: (1) a content classification based on a current content associated with each data block; and (2) a metadata portion describing an erasure status associated with each data block, the system comprising: A computing device; a verification interface of the computing device; the validation interface of the computing device is configured to retrieve a first metadata portion associated with a first data block included within the plurality of data blocks; the validation interface of the computing device is configured to determine a current content classification associated with the first data block, the determined current content classification being one of a plurality of types of content classification including at least a first type of content classification, a second type of content classification, and a third type of content classification, the first type of content classification being associated with non-user generated information used internally for device operation, the second type of content classification being associated with user generated information, and the third type of content classification being associated with inactive data blocks; the verification interface of the computing device is configured to determine a current erase state associated with the first data block, the determined current erase state being one of a plurality of types of erase states including at least a first type of erase state and a second type of erase state; the verification interface of the computing device is configured to determine an erase state associated with the first data block based on the current content classification associated with the first data block and the current erase state associated with the first data block.

32. A system for verifying erasure of data from a data storage device, the data stored in the data storage device comprising a plurality of data blocks, the data stored in the data storage device comprising: (1) a content classification based on a current content associated with each data block; and (2) a metadata portion describing an erasure status associated with each data block, the system comprising: A computing device; a verification interface of the computing device; the validation interface of the computing device is configured to retrieve a first metadata portion associated with a first data block included within the plurality of data blocks; the validation interface of the computing device is configured to determine a current content classification associated with the first data block, the determined current content classification being one of a plurality of types of content classification including at least a first type of content classification and a second type of content classification; The verify interface of the computing device is configured to determine a current erase state associated with the first data block, the determined current erase state being one of a plurality of types of erase states including at least a first type of erase state and a second type of erase state, the first type of erase state being associated with a data block that has not yet been programmed with data or has not yet been programmed with data since a last erase, and the second type of erase state being associated with a data block that has been programmed with data; The verification interface of the computing device is configured to determine an erase state associated with the first data block based on the current content classification associated with the first data block and the current erase state associated with the first data block, the determined erase state associated with the first data block being: in response to the erased state associated with the first data block indicating a data block not yet programmed with data or not yet programmed with data since a last erase, determining that the erased state is verified; determining that the erase status is verified in response to the current content classification associated with the first data block indicating a data block having user generated information or an inactive data block and the erase status associated with the first data block indicating the first type of erase status; and determining, in response to the current content classification associated with the first data block indicating a data block having user generated information or an inactive data block and the erase status associated with the first data block indicating the second type of erase status, that the erase status is not verified; The system is determined according to

Citation Information

Patent Citations

  • Information recording / reading device

    JP2006085596A

  • Job execution device, program, and data deletion method

    JP2016001438A

  • Method, appartus, computer program product, and data structure for providing and utilizing high performance block storage metadata

    US20090100212A1