The present invention relates generally to a storage control system and more particularly to a control system for power down.
Data storage, often called storage or memory, refers to computer components and recording media that retain digital data. Data storage is a core function and fundamental component of consumer and industrial electronics, especially devices such as computers, televisions, cellular phones, mobile devices, and digital video cameras.
An information system is generally equipped with a data storage system using a hard disk drive (HDD) as a storage device. The data storage system is accessed from a plurality of higher-level devices (for example, hosts) via a storage area network (SAN). Storage control in the data storage system can be implemented according to a RAID (Redundant Array of Independent (or Inexpensive)) technology. As a result, a highly reliable information system can be realized.
The data storage system can include a flash memory that is installed instead of or in addition to an HDD and data that will be read out or written into a higher-level device are stored in the flash memory. It can be anticipated that the data storage system having the same storage capacity as a storage system based on HDD will be realized by providing a large number of flash memories. As the capacity and a number of the flash memories increase, data stored in the flash memories must be properly managed to order to improve reliability of the data storage system.
Thus, a need still remains for improved reliability in data storage systems. In view of the increasing demand for improved data management, it is increasingly critical that answers be found to these problems. In view of the ever-increasing commercial competitive pressures, along with growing consumer expectations and the diminishing opportunities for meaningful product differentiation in the marketplace, it is critical that answers be found for these problems. Additionally, the need to reduce costs, improve efficiencies and performance, and meet competitive pressures adds an even greater urgency to the critical necessity for finding answers to these problems.
Solutions to these problems have been long sought but prior developments have not taught or suggested any solutions and, thus, solutions to these problems have long eluded those skilled in the art.
The present invention provides a method of operation of a storage control system, including: initiating a hardening process beginning at a power-down signal; tracking a recorded time beginning at the power-down signal; generating a work-complete entry in memory devices at a conclusion of the hardening process; and calculating a power down margin by determining the recorded time between the work-complete entry and a complete power loss of a hold-up power.
The present invention provides a storage control system, including: a control unit for initiating a hardening process beginning at a power-down signal; a counter module, coupled to the control unit, for tracking a recorded time beginning at the power-down signal; a completion module, coupled to the counter module, for generating a work-complete entry in memory devices at a conclusion of the hardening process; and a calculation module, coupled to the completion module, for calculating a power down margin by determining the recorded time between the work-complete entry and a complete power loss of a hold-up power.
Certain embodiments of the invention have other steps or elements in addition to or in place of those mentioned above. The steps or elements will become apparent to those skilled in the art from a reading of the following detailed description when taken with reference to the accompanying drawings.
The following embodiments are described in sufficient detail to enable those skilled in the art to make and use the invention. It is to be understood that other embodiments would be evident based on the present disclosure, and that system, process, or mechanical changes may be made without departing from the scope of the present invention.
In the following description, numerous specific details are given to provide a thorough understanding of the invention. However, it will be apparent that the invention may be practiced without these specific details. In order to avoid obscuring the present invention, some well-known circuits, system configurations, and process steps are not disclosed in detail.
The term “module” referred to herein can include firmware, or hardware running software, or a combination thereof in the present invention in accordance with the context in which the term is used. For example, the software being run by hardware can be machine code, firmware, embedded code, and application software. Also for example, the hardware can be circuitry, processor, computer, integrated circuit, integrated circuit cores, a pressure sensor, an inertial sensor, a microelectromechanical system (MEMS), passive devices, or a combination thereof.
When an electronic device shuts down using a reserve power source or the hold-up power, there is a finite amount of time in which each of the tasks involved must be able to accomplish the work they have been allocated. Good engineering requires that a worst-case time must be established for each of the tasks and then a margin be added onto that worst-case time to ensure that the entire shutdown operation can be completed in the time over which the reserve power source is able to provide power to the electronic device.
Referring now to
The memory controller 104 provides data control and management of the memory array 106. The memory controller 104 interfaces with the host system 108 and controls the memory array 106 to transfer data between the host system 108 and the memory array 106.
The memory array 106 includes an array of memory devices 110 including flash memory devices or non-volatile memory devices. For example, the memory devices 110 can include NAND flash, NOR flash, or a combination thereof for storing host data, meta data, ancillary data error logs, running statistics, and running configurations. It is understood that the use of NOR flash and NAND flash can be interchangeable based on the configuration and purpose of the storage control system 100.
The memory devices 110 can include NAND flash, NOR flash, or a combination thereof, which are two different types of non-volatile memory. The storage control system 100 can include both types of memory or only one type. For example, the memory devices 110 can include a NAND device 115 for storing information. Examples of NOR flash can include serial peripheral interface (SPI) NOR flash, magnetoresistive random-access memory (MRAM), Phase Change Memory (PCM), Ferromagnetic random-access memory (FRAM), or a combination thereof. The types of non-volatile memory used by the memory array 106 can be based on the intended purpose and hardware specification requirements of the storage control system 100.
The NAND device 115 can be part of a larger array of NAND flash memory. The memory array 106 can include pages of data or information. The host system 108 can request the memory controller 104 for reading, writing, and erasing data from or to the memory array 106.
The memory devices 110 can include chip selects 112, which are defined as control inputs, for enabling the memory devices 110. Each of the chip selects 112 can be used to control the operation of one of the memory devices 110. When the chip selects 112 are enabled, the memory devices 110 are in active state for operation including reading, writing, or recycling.
The memory sub-system 102 can also include a NOR device 113. The NOR device 113 can be an additional storage device to the memory array 106. The NOR device 113 can be used to partition different types of information and data from the memory array 106. The NOR device 113 can include serial peripheral interface (SPI) NOR flash, magnetoresistive random-access memory (MRAM), Phase Change Memory (PCM), Ferromagnetic random-access memory (FRAM), or a combination thereof.
Referring now to
The control unit 202 can be implemented in a number of different manners. For example, the control unit 202 can be a processor, an embedded processor, a microprocessor, a hardware control logic, a hardware finite state machine (FSM), a digital signal processor (DSP), or a combination thereof. The control unit 202 can include multiple independent controllers for controlling different components of the storage control system 100 such as the memory array 106 of
The control interface 210 can be used for communication between the control unit 202 and other functional units in the memory controller 104. The control interface 210 can also be used for communication that is external to the memory controller 104.
The control interface 210 can receive information from the other functional units or from external sources, or can transmit information to the other functional units or to external destinations. The external sources and the external destinations refer to sources and destinations external to the memory controller 104.
The control interface 210 can be implemented in different ways and can include different implementations depending on which functional units or external units are being interfaced with the control interface 210. For example, the control interface 210 can be implemented with a pressure sensor, an inertial sensor, a microelectromechanical system (MEMS), optical circuitry, waveguides, wireless circuitry, wireline circuitry, or a combination thereof.
The storage unit 204 can store the software 212. The storage unit 204 can be a volatile memory, a nonvolatile memory, an internal memory, an external memory, or a combination thereof. For example, the storage unit 204 can be a nonvolatile storage such as non-volatile random access memory (NVRAM), Flash memory, disk storage, or a volatile storage such as static random access memory (SRAM). Further for example, the storage unit 204 can include SPI NOR flash for storing firmware, error log files, running statistics, and runtime configurations.
The storage unit 204 can include a storage interface 214. The storage interface 214 can also be used for communication that is external to the memory controller 104. The storage interface 214 can receive information from the other functional units or from external sources, or can transmit information to the other functional units or to external destinations. The external sources and the external destinations refer to sources and destinations external to the memory controller 104.
The storage interface 214 can include different implementations depending on which functional units or external units are being interfaced with the storage unit 204. The storage interface 214 can be implemented with technologies and techniques similar to the implementation of the control interface 210.
The memory interface unit 206 can enable external communication to and from the memory controller 104. For example, the memory interface unit 206 can permit the memory controller 104 to communicate with the memory array 106 of
The memory interface unit 206 can include a memory interface 216. The memory interface 216 can be used for communication between the memory interface unit 206 and other functional units in the memory controller 104. The memory interface 216 can receive information from the other functional units or can transmit information to the other functional units.
The memory interface 216 can include different implementations depending on which functional units are being interfaced with the memory interface unit 206. The memory interface 216 can be implemented with technologies and techniques similar to the implementation of the control interface 210.
The host interface unit 208 allows the host system 108 of
The control unit 202 can operate the host interface unit 208 to send control or status information generated by the memory controller 104 to the host system 108. The control unit 202 can also execute the software 212 for the other functions of the memory controller 104. The control unit 202 can further execute the software 212 for interaction with the memory array 106 via the memory interface unit 206.
The functional units in the memory controller 104 can work individually and independently of the other functional units. For illustrative purposes, the memory controller 104 is described by operation of the memory controller 104 with the host system 108 and the memory array 106. It is understood that the memory controller 104, the host system 108, and the memory array 106 can operate any of the modules and functions of the memory controller 104.
Referring now to
The device power 302 indicates a power on status of the storage control system 100 or when main power is supplied to the storage control system 100. The exemplary timing diagram illustrates power switching from on to off at a power-down signal 308.
The power-down signal 308 is a signal that indicates when the device power 302 is off or when main power is off. The power-down signal 308 can occur during a device shutdown sequence or during a power failure, which is an unexpected power loss.
The hold-up power 304 is defined as a stored source of power used to provide power to the storage control system 100 after the device power 302 is turned off. For example, the hold-up power 304 can give the memory controller 104 of
The hold-up power 304 starts to supply the storage control system 100 at the power-down signal 308. The hold-up power 304 can supply power for all circuitry of the storage control system 100 until the hold-up power 304 reaches an unusable level at a complete power loss 310.
The complete power loss 310 is a situation where the storage control system 100 is out of power with both the device power 302 and the hold-up power 304. At the complete power loss 310, the storage control system 100 lacks the power to perform any operations.
The memory operation 306 is a period of time where information is being written into memory. For example, the memory operation 306 can indicate when information is written to non-volatile memory, such as the memory devices 110. The memory operation 306 can include a hardening process 312.
The hardening process 312 is defined as a process of storing user and system information before the complete power loss 310 of the storage control system 100. For example, the hardening process 312 can include storing user data to the memory devices 110 upon detection of the power-down signal 308. The hardening process 312 also includes storing in-flight data 328 or in-transit data before the complete power loss 310. The process can be run every time the memory controller 104 and the memory devices 110 are powered down.
During the hardening process 312, information can be stored and manipulated in the memory devices 110, such as non-volatile memory. For example, host data and meta data can be stored in the NAND device 115 of
The tick entries 314 are time information stored in the memory devices 110 during the memory operation 306. The tick entries 314 can track sub-divisions of time in duration of preferably up to an order of a millisecond after the power-down signal 308 is detected. The tick entries 314 are a predefined numerical value of time. The tick entries 314 can be stored in the NOR device 113 of
The storage control system 100 can include a recorded time 318, which is a period or measurement of successive time intervals. The recorded time 318 can be determined by determining the amount of the tick entries 314 generated between one event and another event. For example, the recorded time 318 can be the measurement of the tick entries 314 between the power-down signal 308 and a work-complete entry 316.
The work-complete entry 316 is information or a marker of the time of the conclusion of the hardening process 312. After the storage of the in-flight data 328 is completed during the hardening process 312, the work-complete entry 316 can be generated by the memory controller 104.
A work length 322 is defined as a measurement for the time needed from the power-down signal 308 to the completion of the hardening process 312. The work length 322 can be determined by determining the recorded time 318 between the power-down signal 308 and the work-complete entry 316.
The storage control system 100 can include a method of measuring a power down margin 320 of the memory sub-system 102 of
For example, as soon as the power-down signal 308 is detected, the memory controller 104 can begin writing the tick entries 314 into the memory devices 110, such as the NOR device 113. The tick entries 314 can include as many bits as required to record the information of the tick entries 314 and the work-complete entry 316 of the hardening process 312. The tick entries 314 can be approximately 1-N bytes of data written based on the information that is required to be stored.
A free-running counter can be used to generate the tick entries 314 that occur during the memory operation 306. Information from the hardening process 312 can be stored in the NAND device 115, such as the in-flight data 328. Information written to the memory devices 110 can be written into reserved sections of the memory devices 110.
After the completion of the hardening process 312, when all the in-flight data 328 or in-transit data has been stored, the memory controller 104 can generate the work-complete entry 316 in line with the tick entries 314. After the work-complete entry 316, the memory controller 104 can continue to write the tick entries 314 into the memory devices 110 until the complete power loss 310.
By counting the tick entries 314 before the work-complete entry 316 and the tick entries 314 following the work-complete entry 316, the memory controller 104 can determine the work length 322 or how long it took to complete the hardening process 312. The amount of the tick entries 314 that occur after the work-complete entry 316 is the power down margin 320 or the spare time that is available for the hardening process 312 of the next power-down cycle.
The hardening process 312 for each power cycle of the storage control system 100 can fluctuate. If the work length 322 required for the hardening process 312 fluctuates, the work length 322 of a worst-case scenario can be extrapolated to be used by the storage control system 100.
By determining the power down margin 320 for each power cycle, the memory controller 104 can generate a histogram 326 to determine a rate at which the power down margin 320 decreases as the hold-up power 304 of the storage control system 100 will decrease over use. The memory controller 104 can also generate the histogram 326 with the fluctuations of the work length 322. The histogram 326 can be stored in the memory devices 110, such as non-volatile memory.
The work length 322 of the hardening process 312 and the recorded time 318 of the power down margin 320 can provide information about the operational integrity of the storage control system 100. Decreases in performance of the work length 322 and the power down margin 320 can indicate a deterioration of the memory devices 110 and a deterioration of the hold-up power 304.
For example, if data is being stored into a NAND flash and the expected write time of the hardening process 312 is exceeded, that memory may be worn out and a new location in flash should be selected for shutdown storage. If the time it takes to navigate a data structure is exceeded, the data being stored may need to be reorganized to increase performance. The memory controller 104 can select a new location in the memory devices 110 to store data for improving read/write speed performance.
A buffer threshold 324 is a predetermined threshold or point for providing an alert of the deterioration of the power down margin 320. For example, the duration of the power down margin 320 can decrease over time due to continuous use of the memory devices 110. If the power down margin 320 falls below the buffer threshold 324, then there may be insufficient time to complete the hardening process 312 after the power-down signal 308.
An indication can be triggered when the power down margin 320 reaches the buffer threshold 324. If the duration of the power down margin 320 decreases, another section of the memory devices 110 can be selected for storing information. For example, if the power down margin 320 is below the buffer threshold 324, the memory controller 104 can replace the non-volatile memory used to store information.
It has been discovered that the power down margin 320 and the work length 322 of the hardening process 312 provides the amount of time that the storage control system 100 is able to continue operating after the device power 302 has been removed. The power down margin 320 can be used to indicate the spare time available to the storage control system 100 to complete the hardening process 312 and to ensure that the hardening process 312 does not exceed the available time provided by the hold-up power 304.
It has been discovered that determining the power down margin 320 and the work length 322 provides indicators for assessing the system integrity of the storage control system 100. If the duration of the power down margin 320 decreases, the detection of the decrease can provide information that the hold-up power 304 is degrading. The storage control system 100 can replace the non-volatile memory of the memory devices 110 for improving performance and the work length 322 of the hardening process 312 can be decreased to counteract a degradation of the hold-up power 304. The improved reliability is critical to address the concern that over time, the hold-up power 304 will degrade and that the power down margin 320 ensures that the storage control system 100 will continue to operate for time intended by the device's design.
It has been discovered that the duration of the hardening process 312 provides additional indicators for assessing the health and integrity of the memory devices 110 used for the hardening process 312. If the duration of the work length 322 increases, the storage control system 100 can replace the non-volatile memory of the memory devices 110 to increase the speed of the hardening process 312.
It has also been discovered that detection of the power-down signal 308 and measurement of the power down margin 320 for the hold-up power 304 provides improved reliability by providing a sufficient amount of time for the memory controller 104 to completely write the in-flight data 328 to the memory devices 110. The sufficient amount of time is critical since capacitors that provide the hold-up power 304 fade as storage drives age.
It has been discovered that writing the tick entries 314 into the memory devices 110, such as non-volatile memory can provide a low-level and inexpensive method of determining the power down margin 320 and the work length 322 of the hardening process 312 compared to other methods that use messaging mechanisms. The tick entries 314 provide a method of tracking the hold-up power 304 at the complete power loss 310, when no power remains to write to the memory devices 110.
It has been discovered that the storage control system 100 can include the use of multiple memory types, such as the NOR device 113 and the NAND device 115, including SPI NOR flash memory and NAND flash memory, to increase shutdown speed and preserve overall storage space. For example, information stored during the hardening process 312 including host data and meta data can be stored in NAND flash memory, while the information of the power-cycle record 402 can be stored in SPI NOR flash memory in parallel with the hardening process 312.
It has further been discovered that the histogram 326 provides improved reliability and predictability by indicating useful information including the rate at which the power down margin 320 decreases and the duration of the work length 322 of the hardening process 312 in order to monitor the integrity of the storage control system 100.
Referring now to
The memory controller 104 of
The exemplary diagram can include a power-cycle record 402, which is defined as a collection of information including the tick entries 314, followed by the work-complete entry 316, and the plurality of the tick entries 314 that occur until the complete power loss 310. The power-cycle record 402 can be used to organize, analyze, and compare the work length 322 of the hardening process 312, the power down margin 320, and length of the hold-up power 304 over many power cycles.
If the memory devices 110 are implemented using a NOR flash memory, then storing information of the memory operation 306 can be time consuming and decrease the longevity of the memory devices 110 because NOR flash memory has a limited number of erases that can be performed. The organization of the information of the memory operation 306 into the power-cycle record 402 can reduce the number of times the memory devices 110 are erased and improve the ability to track changes in the hardening process 312 and the power down margin 320.
For example, to increase the longevity of the memory device 110, such as non-volatile memory, each of the tick entries 314 can be appended onto the last location in the non-volatile memory or written to the next adjacent location. In other words, each of the tick entries 314 can be written into a location that is immediately next to the last location of a set of the power-cycle record 402 from the previous power cycle. This method uses fewer blocks of the non-volatile memory instead of writing each of the power-cycle record 402 to a new block location or writing and erasing a designated section of the non-volatile memory multiple times.
The last location that was used to store the tick entries 314 of the previous power cycle can be marked or identified by a unique identifier 404. In this case, the unique identifier 404 should be written before the start of the power-cycle record 402 for another of the power-cycle record 402 is recorded.
After the next power up cycle, the memory controller 104 can perform a search in the memory devices 110 for the unique identifier 404. The unique identifier 404 for the tick entries 314 can be the same for every instance of the tick entries 314 written into the memory devices 110. Read and write addresses of the memory devices 110 can be determined by read and write pointers by the memory controller 104. The read and write pointers can be implemented using modulo counters.
After the next power up cycle, the memory controller 104 can start reading from the end of the highest address in the memory devices 110 and search backwards for the unique identifier 404. The term backward refers to a search direction from the highest address to the lowest address of the non-volatile memory. The power down margin 320 can be approximately calculated as a number of the tick entries 314 before the unique identifier 404 to the work-complete entry 316.
In another example, when the non-volatile memory of the memory devices 110 is not completely cleared after the next power-up cycle and the read and write pointers are implemented using the modulo counters, the next write location can be immediately after the last location previously written before the hold-up power 304 of
Further for example, the power-cycle record 402 with the unique identifier 404 can be indexed using a measurement array 406, which is a table for tracking each instance of a plurality of the power-cycle record 402. Each entry within the measurement array 406 can be large enough to hold a maximum amount of the tick entries 314 that could possibly occur during power down. The measurement array 406 can index each of the unique identifier 404 of each of the power-cycle record 402. Thus the unique identifier 404 of a specific power cycle can be efficiently accessed using the index information stored in the measurement array 406.
It has been discovered that the unique identifier 404 increases the longevity of the storage control system 100 of
Referring now to
The second exemplary diagram is similar to the exemplary diagram in
The non-volatile hold-up power 501 can be similar to the hold-up power 304 of
The storage control system 100 can include a method for generating a timestamp information 502, which is defined as information indicating the time and date of the occurrence of an event. For example, the timestamp information 502 can include a time of day, a date, and an event type. The timestamp information 502 can include a power-loss stamp 504, a completion stamp 506, and a depletion stamp 508. The timestamp information 502 can be stored in the NOR device 113 of
At the detection of the power-down signal 308, the memory controller 104 generates the power-loss stamp 504. The power-loss stamp 504 can include a recording of the current time of the power-down signal 308, which can be read from an available counter.
The storage control system 100 proceeds with the memory operation 306 including the hardening process 312 of
At the conclusion of the hold-up power 304 and near the complete power loss 310, the memory controller 104 of
After detecting the threshold power signal 510, the memory controller 104 can generate the depletion stamp 508. The depletion stamp 508 includes the time of occurrence of the threshold power signal 510. If the memory controller 104 has insufficient power to record the depletion stamp 508 into the memory devices 110, the memory controller 104 can use the non-volatile hold-up power 501 to record the depletion stamp 508.
The timestamp information 502 can be used to calculate the work length 322, the power down margin 320, and the recorded time 318 of
It has been discovered that the power down margin 320 and the work length 322 of the hardening process 312 provides the amount of time that the storage control system 100 is able to continue operating after the device power 302 has been removed. The power down margin 320 can be used to indicate the spare time available to the storage control system 100 to complete the hardening process 312 and to ensure that the hardening process 312 does not exceed the available time provided by the hold-up power 304.
It has been discovered that determining the power down margin 320 and the work length 322 provides indicators for assessing the system integrity of the storage control system 100. If the duration of the power down margin 320 decreases, the detection of the decrease can provide information that the hold-up power 304 is degrading. The storage control system 100 can replace the non-volatile memory of the memory devices 110 for improving performance and the work length 322 of the hardening process 312 can be decreased to counteract a degradation of the hold-up power 304. The improved reliability is critical to address the concern that over time, the hold-up power 304 will degrade and that the power down margin 320 ensures that the storage control system 100 will continue to operate for time intended by the device's design.
It has been discovered that the duration of the hardening process 312 provides additional indicators for assessing the health and integrity of the memory devices 110 used for the hardening process 312. If the duration of the work length 322 increases, the storage control system 100 can replace the non-volatile memory of the memory devices 110 to increase the speed of the hardening process 312.
It has also been discovered that detection of the power-down signal 308 and measurement of the power down margin 320 for the hold-up power 304 provides improved reliability by providing a sufficient amount of time for the memory controller 104 to completely write the in-flight data 328 of
It has been discovered that writing the timestamp information 502 into the memory devices 110, such as non-volatile memory can provide a low-level and inexpensive method of determining the power down margin 320 and the work length 322 of the hardening process 312 compared to other methods that use messaging mechanisms.
Referring now to
In the control flow, as an example, each module is indicated by a number and successively higher module numbers follow one another. Control flow can pass from one module to the next higher numbered module unless explicitly otherwise indicated. The control unit 202 of
The power module 602 can generate the power-down signal 308. The power module 602 detects if the device power 302 of
The threshold power module 614 generates the threshold power signal 510 of
The operation module 604 performs the hardening process 312 of
The operation module 604 can inform the counter module 606 with information. For example, the operation module 604 can inform the counter module 606 of the completion of the hardening process 312 for generating the work-complete entry 316 of
The counter module 606 tracks the recorded time 318 of
The tick module 616 generates the tick entries 314 of
The tick module 616 can store the tick entries 314 into the NOR device 113. For example, the NOR device 113 can include SPI NOR flash based on the configuration of the storage control system 100. The tick entries 314 can be written a single bit at a time when storing within the NOR device 113. The NOR device 113 conserves overall storage capacity because the tick entries 314 are not written as an eight kilobyte block within NAND flash.
The completion module 618 generates the work-complete entry 316 after the completion of the hardening process 312. After the completion of the hardening process 312 by the operation module 604, the completion module 618 can generate the work-complete entry 316 in line with the tick entries 314. The completion module 618 can store the work-complete entry 316 in the NOR device 113.
The stamp module 620 generates the timestamp information 502 of
The identifier module 608 can generate the unique identifier 404 of
The calculation module 610 can analyze the recorded time 318 of the power-cycle record 402 for determining the power down margin 320 and the work length 322. The calculation module 610 can include a length module 624, a margin module 622, and a buffer module 626.
The length module 624 calculates the work length 322 of the hardening process 312. The work length 322 can be calculated by determining the number of the tick entries 314 between the power-down signal 308 and the work-complete entry 316. The length module 624 can also determine the work length 322 by measuring the time between the power-loss stamp 504 and the completion stamp 506.
The margin module 622 calculates the power down margin 320. The power down margin 320 can be calculated by determining the number of the tick entries 314 between the work-complete entry 316 and the complete power loss 310. The margin module 622 can also determine the power down margin 320 by measuring the time between the completion stamp 506 and the depletion stamp 508.
The buffer module 626 determines if the power down margin 320 has decreased below the buffer threshold 324 of
The alert module 612 can trigger a warning 628. The warning 628 can be triggered when the power down margin 320 reaches or drops below the buffer threshold 324. The warning 628 can alert the memory controller 104 to select another section of the memory devices 110 of
The modules of the memory controller 104 can represent dividing the operations of the present invention into subtasks. Each function of the modules can be executed and tracked independently by the memory controller 104.
The storage control system 100 describes the module functions or order as an example. The modules can be partitioned differently. For example, the power module 602, the operation module 604, the counter module 606, and the calculation module 610 can be implemented as one module or with lesser number of modules. Each of the modules can operate individually and independently of the other modules.
Each of the functions or tasks of the present invention can be tailored to hardware and firmware changes as the product matures. Substitutions of capacitor values, manufacture, quantity, and other design changes would be partitioned in such a way as to make to process modular based on the specific build. For example, each module of a firmware can track a specific aspect of the hardware.
The storage control system 100 can include the NOR device 113 and the NAND device 115 for storing information in parallel. The NOR device 113 can include SPI NOR flash, MRAM, PCM, FRAM, or a combination thereof for storing drive firmware and other pieces of ancillary data such as error log files, running statistics, and runtime configuration.
The NAND device 115 can be used to store information from the hardening process 312 including host data and meta data concurrently with information being stored on the NOR device 113. The bus interface used for the NOR device 113 can be different from the bus interface used for the NAND device 115 for allowing storage on both devices to operate in parallel. For example, a three wire bus can be attached to a SPI NOR flash and an eighteen wire bus can be attached to the NAND device 115.
Information stored on the NOR device 113 can be written as a single bit at a time instead of using eight kilobytes of a NAND flash and thus overall storage capacity is preserved. For example, the tick entries 314, the work-complete entry 316, the buffer threshold 324, the unique identifier 404, the timestamp information 502, the power-loss stamp 504, the completion stamp 506, and the depletion stamp 508 can all be written into the NOR device 113 or the storage unit 204 of
It has been discovered that the power down margin 320 and the work length 322 of the hardening process 312 provides the amount of time that the storage control system 100 of
It has been discovered that the storage control system 100 can include the use of multiple memory types, such as the NOR device 113 and the NAND device 115, including SPI NOR flash memory and NAND flash memory, to increase shutdown speed and preserve overall storage space. For example, information stored during the hardening process 312 including host data and meta data can be stored in NAND flash memory, while the information of the power-cycle record 402 can be stored in the NOR device 113, such as SPI NOR flash memory in parallel with the hardening process 312.
It has been discovered that determining the power down margin 320 and the work length 322 provides indicators for assessing the system integrity of the storage control system 100. If the duration of the power down margin 320 decreases, the detection of the decrease can provide information that the hold-up power 304 is degrading. The storage control system 100 can replace the non-volatile memory of the memory devices 110 for improving performance and the work length 322 of the hardening process 312 can be decreased to counteract a degradation of the hold-up power 304. The improved reliability is critical to address the concern that over time, the hold-up power 304 will degrade and that the power down margin 320 ensures that the storage control system 100 will continue to operate for time intended by the device's design.
As NAND flash ages, program and erases cycles will increase, which in turn adds length to the hardening process 312. For example, an erase cycle will typically go from 2 ms to 10 ms at the end of life of the NAND flash, which would also increase the length of the hardening process 312. Longer lengths for the conclusion of the hardening process 312 also provides an indication of the health of the NAND flash in the storage control system 100 in addition to being used as an indicator for the health of the hold-up power 304.
It has been discovered that the duration of the hardening process 312 provides additional indicators for assessing the health and integrity of the memory devices 110 used for the hardening process 312. If the duration of the work length 322 increases, the storage control system 100 can replace the non-volatile memory of the memory devices 110 to increase the speed of the hardening process 312.
It has also been discovered that detection of the power-down signal 308 and measurement of the power down margin 320 for the hold-up power 304 provides improved reliability by providing a sufficient amount of time for the memory controller 104 to completely write the in-flight data 328 to the memory devices 110. The sufficient amount of time is critical since capacitors that provide the hold-up power 304 fade as storage drives age.
It has been discovered that writing the tick entries 314 into the memory devices 110, such as non-volatile memory can provide a low-level and inexpensive method of determining the power down margin 320 and the work length 322 of the hardening process 312 compared to other methods that use messaging mechanisms. The tick entries 314 provide a method of tracking the hold-up power 304 at the complete power loss 310, when no power remains to write to the memory devices 110.
It has been discovered that breaking each operation of the modules of the memory controller 104 into monitored subtasks allows each operation can be monitored separately. It has been further discovered that writing the timestamp information 502 into the memory devices 110, such as non-volatile memory can provide a low-level and inexpensive method of determining the power down margin 320 and the work length 322 of the hardening process 312 compared to other methods that use messaging mechanisms.
It has been discovered that the tick entries 314, the work-complete entry 316, the buffer threshold 324, the unique identifier 404, the timestamp information 502, the power-loss stamp 504, the completion stamp 506, and the depletion stamp 508 can be written into the NOR device 113, such as SPI NOR flash to preserve storage space. For example, the tick entries 314 and the timestamp information 502 can be written into SPI NOR flash memory a single bit at a time instead of using eight kilobytes blocks of NAND flash memory.
It has been discovered that the use of the NOR device 113 for storing the recorded time 318, the tick entries 314, the work-complete entry 316, the unique identifier 404, the timestamp information 502, the power-loss stamp 504, the completion stamp 506, and the depletion stamp 508 reduces power consumption of the storage control system 100 over other memory types. For example, the NOR device 113 consumes less power than storing the same information in the NAND device 115. The partitioning of data storage into the NOR device 113 and the NAND device 115 conserves overall power consumption than products that only use NAND flash.
It has also been discovered that the use of both the NOR device 113 and the NAND device 115 for partitioning different types of information conserves circuit board space by replacing NAND flash chips with smaller NOR flash. The NOR device 113 can take the place of some NAND chips on the circuit board allowing for smaller hardware designs and configurations for the storage control system 100.
The physical transformation of process steps including calculating the power down margin 320 results in movement in the physical world, such as the alert module 612 generating the warning 628 to the memory controller 104 that the power down margin 320 is insufficient, based on the operation of the storage control system 100. As the movement in the physical world occurs, the movement itself creates additional information that is converted back for calculating the power down margin 320 for the continued operation of the storage control system 100 and to continue the movement in the physical world.
Referring now to
Thus, it has been discovered that the storage control system of the present invention furnishes important and heretofore unknown and unavailable solutions, capabilities, and functional aspects for a storage control system with power down mechanism. The resulting method, process, apparatus, device, product, and/or system is straightforward, cost-effective, uncomplicated, highly versatile, accurate, sensitive, and effective, and can be implemented by adapting known components for ready, efficient, and economical manufacturing, application, and utilization.
Another important aspect of the present invention is that it valuably supports and services the historical trend of reducing costs, simplifying systems, and increasing performance.
These and other valuable aspects of the present invention consequently further the state of the technology to at least the next level.
While the invention has been described in conjunction with a specific best mode, it is to be understood that many alternatives, modifications, and variations will be apparent to those skilled in the art in light of the aforegoing description. Accordingly, it is intended to embrace all such alternatives, modifications, and variations that fall within the scope of the included claims. All matters hithertofore set forth herein or shown in the accompanying drawings are to be interpreted in an illustrative and non-limiting sense.
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/625,645 filed Apr. 17, 2012, and the subject matter thereof is incorporated herein by reference thereto.
Number | Name | Date | Kind |
---|---|---|---|
4048481 | Bailey, Jr. et al. | Sep 1977 | A |
4322766 | Becker et al. | Mar 1982 | A |
4528458 | Nelson et al. | Jul 1985 | A |
4600962 | Bliehall | Jul 1986 | A |
5193176 | Brandin | Mar 1993 | A |
5311395 | McGaha et al. | May 1994 | A |
5479638 | Assar et al. | Dec 1995 | A |
5568429 | D'Souza et al. | Oct 1996 | A |
5832515 | Ledain et al. | Nov 1998 | A |
5930504 | Gabel | Jul 1999 | A |
5949785 | Beasley | Sep 1999 | A |
5963983 | Sakakura et al. | Oct 1999 | A |
5996054 | Ledain et al. | Nov 1999 | A |
6091652 | Haehn et al. | Jul 2000 | A |
6275436 | Tobita et al. | Aug 2001 | B1 |
6345367 | Sinclair | Feb 2002 | B1 |
6356447 | Scafidi | Mar 2002 | B2 |
6381670 | Lee et al. | Apr 2002 | B1 |
6393584 | McLaren et al. | May 2002 | B1 |
6412080 | Fleming et al. | Jun 2002 | B1 |
6552581 | Gabara | Apr 2003 | B1 |
6587915 | Kim | Jul 2003 | B1 |
6597073 | Check | Jul 2003 | B1 |
6618249 | Fairchild | Sep 2003 | B2 |
6678788 | O'Connell | Jan 2004 | B1 |
6728913 | Parker | Apr 2004 | B1 |
6738268 | Sullivan et al. | May 2004 | B1 |
6763424 | Conley | Jul 2004 | B2 |
6775792 | Ulrich et al. | Aug 2004 | B2 |
6778387 | Fairchild | Aug 2004 | B2 |
6850443 | Lofgren et al. | Feb 2005 | B2 |
6854070 | Johnson et al. | Feb 2005 | B2 |
6903972 | Lasser et al. | Jun 2005 | B2 |
6906961 | Eggleston et al. | Jun 2005 | B2 |
6975028 | Wayburn et al. | Dec 2005 | B1 |
7082495 | DeWhitt et al. | Jul 2006 | B2 |
7107389 | Inagaki et al. | Sep 2006 | B2 |
7139864 | Bennett et al. | Nov 2006 | B2 |
7233497 | Simon et al. | Jun 2007 | B2 |
7243186 | Liang et al. | Jul 2007 | B2 |
7330927 | Reeve et al. | Feb 2008 | B1 |
7333364 | Yu et al. | Feb 2008 | B2 |
7355896 | Li et al. | Apr 2008 | B2 |
7434122 | Jo | Oct 2008 | B2 |
7441067 | Gorobets et al. | Oct 2008 | B2 |
7516267 | Coulson et al. | Apr 2009 | B2 |
7613871 | Tanaka et al. | Nov 2009 | B2 |
7620769 | Lee et al. | Nov 2009 | B2 |
7639532 | Roohparvar et al. | Dec 2009 | B2 |
7661054 | Huffman et al. | Feb 2010 | B2 |
7679948 | Park et al. | Mar 2010 | B2 |
7738502 | Chang et al. | Jun 2010 | B2 |
7743216 | Lubbers et al. | Jun 2010 | B2 |
7818525 | Frost et al. | Oct 2010 | B1 |
7827348 | Lee et al. | Nov 2010 | B2 |
7830164 | Earle et al. | Nov 2010 | B2 |
7870338 | Iida et al. | Jan 2011 | B2 |
7979614 | Yang | Jul 2011 | B1 |
8001135 | Perlmutter et al. | Aug 2011 | B2 |
8001419 | Killian et al. | Aug 2011 | B2 |
8010738 | Chilton et al. | Aug 2011 | B1 |
8028123 | Kilzer et al. | Sep 2011 | B2 |
8046645 | Hsu et al. | Oct 2011 | B2 |
8051241 | Feldman et al. | Nov 2011 | B2 |
8072805 | Chou et al. | Dec 2011 | B2 |
8095765 | Asnaashari et al. | Jan 2012 | B2 |
8117396 | Fair et al. | Feb 2012 | B1 |
8127202 | Cornwell et al. | Feb 2012 | B2 |
8145984 | Sommer et al. | Mar 2012 | B2 |
8154921 | Mokhlesi et al. | Apr 2012 | B2 |
8169825 | Shalvi et al. | May 2012 | B1 |
8219724 | Caruso et al. | Jul 2012 | B1 |
8219776 | Forhan et al. | Jul 2012 | B2 |
8228701 | Sokolov et al. | Jul 2012 | B2 |
8245101 | Olbrich et al. | Aug 2012 | B2 |
8254172 | Kan | Aug 2012 | B1 |
8259506 | Sommer et al. | Sep 2012 | B1 |
8289801 | Smith et al. | Oct 2012 | B2 |
8332578 | Frickey, III et al. | Dec 2012 | B2 |
8363413 | Paquette et al. | Jan 2013 | B2 |
8369141 | Sommer et al. | Feb 2013 | B2 |
8386700 | Olbrich et al. | Feb 2013 | B2 |
8407409 | Kawaguchi | Mar 2013 | B2 |
8464106 | Filor et al. | Jun 2013 | B2 |
8612804 | Kang et al. | Dec 2013 | B1 |
20020159285 | Morley et al. | Oct 2002 | A1 |
20030046603 | Harari et al. | Mar 2003 | A1 |
20030074592 | Hasegawa | Apr 2003 | A1 |
20030126494 | Strasser | Jul 2003 | A1 |
20030163633 | Aasheim et al. | Aug 2003 | A1 |
20040080985 | Chang et al. | Apr 2004 | A1 |
20040252670 | Rong et al. | Dec 2004 | A1 |
20050021904 | Iaculo et al. | Jan 2005 | A1 |
20050038792 | Johnson | Feb 2005 | A1 |
20050073884 | Gonzalez et al. | Apr 2005 | A1 |
20050114587 | Chou et al. | May 2005 | A1 |
20050134288 | Monter et al. | Jun 2005 | A1 |
20050223206 | Janzen et al. | Oct 2005 | A1 |
20060020745 | Conley et al. | Jan 2006 | A1 |
20060039196 | Gorobets et al. | Feb 2006 | A1 |
20060108875 | Grundmann et al. | May 2006 | A1 |
20060136682 | Haridas et al. | Jun 2006 | A1 |
20060143365 | Kikuchi | Jun 2006 | A1 |
20060253641 | Gatzemeier et al. | Nov 2006 | A1 |
20060256624 | Eggleston et al. | Nov 2006 | A1 |
20060282644 | Wong | Dec 2006 | A1 |
20060294574 | Cha | Dec 2006 | A1 |
20070061511 | Faber | Mar 2007 | A1 |
20070083779 | Misaka et al. | Apr 2007 | A1 |
20070180188 | Fujbayashi et al. | Aug 2007 | A1 |
20070234004 | Oshima et al. | Oct 2007 | A1 |
20070260811 | Merry, Jr. et al. | Nov 2007 | A1 |
20070263444 | Gorobets et al. | Nov 2007 | A1 |
20070276973 | Tan et al. | Nov 2007 | A1 |
20080046630 | Lasser | Feb 2008 | A1 |
20080052446 | Lasser et al. | Feb 2008 | A1 |
20080082736 | Chow et al. | Apr 2008 | A1 |
20080183918 | Dhokia et al. | Jul 2008 | A1 |
20080313505 | Lee et al. | Dec 2008 | A1 |
20090019321 | Radke | Jan 2009 | A1 |
20090089485 | Yeh | Apr 2009 | A1 |
20090157948 | Trichina et al. | Jun 2009 | A1 |
20090164702 | Kern | Jun 2009 | A1 |
20090168525 | Olbrich et al. | Jul 2009 | A1 |
20090172262 | Olbrich et al. | Jul 2009 | A1 |
20090259896 | Hsu et al. | Oct 2009 | A1 |
20090323419 | Lee et al. | Dec 2009 | A1 |
20090327581 | Coulson | Dec 2009 | A1 |
20090327591 | Moshayedi | Dec 2009 | A1 |
20100008175 | Sweere et al. | Jan 2010 | A1 |
20100011261 | Cagno et al. | Jan 2010 | A1 |
20100017650 | Chin et al. | Jan 2010 | A1 |
20100023674 | Aviles | Jan 2010 | A1 |
20100050053 | Wilson et al. | Feb 2010 | A1 |
20100052426 | Carter et al. | Mar 2010 | A1 |
20100052625 | Cagno et al. | Mar 2010 | A1 |
20100095048 | Bechtolsheim et al. | Apr 2010 | A1 |
20100103737 | Park | Apr 2010 | A1 |
20100138592 | Cheon | Jun 2010 | A1 |
20100169541 | Freikorn | Jul 2010 | A1 |
20100174845 | Gorobets et al. | Jul 2010 | A1 |
20100217915 | O'Connor et al. | Aug 2010 | A1 |
20100217920 | Song | Aug 2010 | A1 |
20100287328 | Feldman et al. | Nov 2010 | A1 |
20100293367 | Berke et al. | Nov 2010 | A1 |
20100318719 | Keays et al. | Dec 2010 | A1 |
20100332726 | Wang | Dec 2010 | A1 |
20110055468 | Gonzalez et al. | Mar 2011 | A1 |
20110066788 | Eleftheriou et al. | Mar 2011 | A1 |
20110066872 | Miller et al. | Mar 2011 | A1 |
20110085657 | Matthews, Jr. | Apr 2011 | A1 |
20110131365 | Zhang et al. | Jun 2011 | A1 |
20110131447 | Prakash et al. | Jun 2011 | A1 |
20110145473 | Maheshwari | Jun 2011 | A1 |
20110190963 | Glassl et al. | Aug 2011 | A1 |
20110191649 | Lim et al. | Aug 2011 | A1 |
20110320687 | Belluomini et al. | Dec 2011 | A1 |
20120047320 | Yoo et al. | Feb 2012 | A1 |
20120047409 | Post et al. | Feb 2012 | A1 |
20120054456 | Grube et al. | Mar 2012 | A1 |
20120084492 | Stenfort | Apr 2012 | A1 |
20120089855 | Beckoff et al. | Apr 2012 | A1 |
20120124046 | Provenzano | May 2012 | A1 |
20120124273 | Goss et al. | May 2012 | A1 |
20120151260 | Zimmermann et al. | Jun 2012 | A1 |
20120221801 | Okawa | Aug 2012 | A1 |
20120266048 | Chung et al. | Oct 2012 | A1 |
20120271990 | Chen et al. | Oct 2012 | A1 |
20120331207 | Lassa et al. | Dec 2012 | A1 |
20130019076 | Amidi et al. | Jan 2013 | A1 |
20130073788 | Post et al. | Mar 2013 | A1 |
20130100600 | Yin et al. | Apr 2013 | A1 |
20130336081 | Sheets et al. | Dec 2013 | A1 |
20140001861 | Mann et al. | Jan 2014 | A1 |
20140006798 | Prakash et al. | Jan 2014 | A1 |
20140008970 | Yamaguchi | Jan 2014 | A1 |
20140012522 | Colombi et al. | Jan 2014 | A1 |
20140215103 | Cohen et al. | Jul 2014 | A1 |
20140269053 | Chen et al. | Sep 2014 | A1 |
20150052397 | Nakamura et al. | Feb 2015 | A1 |
Number | Date | Country |
---|---|---|
1 956 489 | Aug 2008 | EP |
Entry |
---|
International Search Report and Written Opinion dated Jan. 26, 2015, received in International Patent Application No. PCT/US2014/059118, which corresponds to U.S. Appl. No. 14/135,371, 11 pages (Lucas). |
International Preliminary Report on Patentability dated Oct. 30, 2014, received in International Patent Application No. PCT/US2013/035162, which corresponds to U.S. Appl. No. 13/855,567, 4 pages (Ellis). |
Cooke, “Introduction to Flash Memory (T1A),” Flash Memory Summit, Aug. 22, 2008, Micron Technology, Inc., 102 pages. |
Gal et al., “Algorithms and Data Structures for Flash Memories,” ACM Computing Surveys, Jun. 2005, vol. 37, No. 2, 30 pages. |
IBM Corporation, “Systems Management, Work Management” Version 5, Release 4, 9th Edition, Feb. 2006, pp. 1-21. |
O'Brien, “SMART Storage Systems Optmus SAS Enterprise SSD Review,” SMART Storage Systems, Oct. 9, 2012, 44 pages. |
Spanjer, “Flash Management—Why and How?” Smart Modular Technologies, Nov. 2009, http://www.scantec.de/fileadmin/pdf/Smart—Modular/Flash-Management.pdf, 14 pages. |
Texas Instruments, “Power Management IC for Digital Set Top Boxes,” SLVSA10A, Sep. 2009, pp. 1-22. |
International Search Report and Written Opinion dated Dec. 20, 2013, received in PCT/US2013/045282, which corresponds to U.S. Appl. No. 13/493,949, 7 pages (Ellis). |
Search Report dated Jul. 26, 2013 for PCT International Application No. PCT/US2013/035162. |
IBM Corporation, “Systems Management Controlling System Shutdown Using a Power-Handling Program”, Version 5, Release 4, 9th Edition, pp. 1-21, Feb. 2006. |
Texas Instruments, “Power Management IC for Digital Set Top Boxes”, SLVSA10A, pp. 1-22, Sep. 2009. |
International Search Report and Written Opinion dated Jul. 26, 2013, received in International Patent Application No. PCT/US2013/035162, which corresponds to U.S. Appl. No. 13/855,567, 7 pages (Ellis). |
International Search Report and Written Opinion dated May 27, 2015, received in International Patent Application No. PCT/US2014/067476, which corresponds to U.S. Appl. No. 14/135,417, 14 pages (Lucas). |
International Search Report and Written Opinion dated Jul. 14, 2015, received in International Patent Application No. PCT/US2015/027263, which corresponds to U.S. Appl. No. 14/599,128, 10 pages (Ellis). |
Number | Date | Country | |
---|---|---|---|
20130275795 A1 | Oct 2013 | US |
Number | Date | Country | |
---|---|---|---|
61625645 | Apr 2012 | US |