摘要:
Systems and methods are disclosed for trim token journaling. A device can monitor the order in which trim commands and write commands are applied to an indirection system stored in a volatile memory of the device. In some embodiments, the device can directly write to a page of an NVM with a trim token that indicates that a LBA range stored in the page has been trimmed. In other embodiments, a device can add pending trim commands to a trim buffer stored in the volatile memory. Then, when the trim buffer reaches a pre-determined threshold or a particular trigger is detected, trim tokens associated with all of the trim commands stored in the trim buffer can be written to the NVM. Using these approaches, the same sequence of events that was applied to the indirection system during run-time can be applied during device boot-up.
摘要:
Systems and methods are disclosed for heuristics associated with programming data in a non-volatile memory (“NVM”). One or more applications can generate information that notifies a system of the amounts of recoverable and unrecoverable new data that will be programmed to an NVM. Based on this information, the system can calculate the amount of new data that needs to be placed in a bulk mode instead of a SLC mode. By utilizing multi-modal modes of an NVM effectively, the system can improve overall performance and reduce the probability of unnecessary garbage collection.
摘要:
Systems and methods are disclosed for trim token journaling. A device can monitor the order in which trim commands and write commands are applied to an indirection system stored in a volatile memory of the device. In some embodiments, the device can directly write to a page of an NVM with a trim token that indicates that a LBA range stored in the page has been trimmed. In other embodiments, a device can add pending trim commands to a trim buffer stored in the volatile memory. Then, when the trim buffer reaches a pre-determined threshold or a particular trigger is detected, trim tokens associated with all of the trim commands stored in the trim buffer can be written to the NVM. Using these approaches, the same sequence of events that was applied to the indirection system during run-time can be applied during device boot-up.
摘要:
Systems and methods are disclosed for heuristics associated with programming data in a non-volatile memory (“NVM”). One or more applications can generate information that notifies a system of the amounts of recoverable and unrecoverable new data that will be programmed to an NVM. Based on this information, the system can calculate the amount of new data that needs to be placed in a bulk mode instead of a SLC mode. By utilizing multi-modal modes of an NVM effectively, the system can improve overall performance and reduce the probability of unnecessary garbage collection.
摘要:
Methods and structures for dynamic density control to improve reliability of a dynamically mapped storage device. In a dynamically mapped storage device in which all user supplied logical blocks are dynamically mapped by the storage device controller to physical disk blocks, features and aspects hereof provide for dynamically altering the recording density of user data stored on the storage device. So long as the physical capacity utilization of the storage device permits, new data stored on the device may be stored at lower density to improve reliability in reading back the recorded data. Further features and aspects hereof may reduce the recording density only for data deemed to be critical. Radial (track) density, longitudinal (bit) density, or both may be dynamically controlled to reduce recording density. As physical capacity utilization increases, data previously recorded at lower density may be migrated (re-recorded) at normal higher density.
摘要:
Methods and structures for dynamic multiple indirections to improve reliability and performance of a dynamically mapped storage devices. In a dynamically mapped storage device in which all user supplied logical blocks are dynamically mapped by the storage device controller to physical disk blocks, features and aspects hereof provide for dynamically altering the number of replicated copies (multiple mapped indirections) of user data stored on the storage device. Performance information regarding operation of the storage device may be gathered by the storage device controller such that where physical capacity of the storage device permits and as degrading reliability is detected, additional copies (multiple indirections) of stored user data may be written to the mapped storage device. Increased multiple indirections improves reliability by decreasing the probability of data loss in response to various failure modes of the storage device. Strategic physical placement of the multiple copies (multiple indirections) may improve performance by reducing latencies associated with accessing the user data.
摘要:
Methods and structures for providing patches or updates to embedded ROM firmware simply and inexpensively while avoiding imposition of execution or memory fetch overhead. A patch memory includes locations storing addresses and optional alternate data values. Read/fetch operations addressed to a firmware ROM memory are applied in parallel to the patch memory. All locations of the patch memory may be compared in parallel to the supplied address to determine if a match is found in patch memory. If no match is found, the read/fetch memory cycle completes normally retrieving data from the ROM memory. If a match is found, the alternate data value is applied to the data bus in place of the ROM memory data retrieved. Any ROM location may therefore be patched regardless of whether the location stores instruction or data.
摘要:
A method and system for wear leveling in a solid state drive by mapping the logical regions of the solid state drive that hold static content or information into the physical regions of the solid state drive that have erase counts more than an average erase count of all of the physical regions. By doing so, it allows the solid state drive to wear level itself naturally through continued usage. In one embodiment of the invention, the erase count of each physical region is incremented with every erasing operation of each physical region. The physical regions that have a high count of erase count operations are mapped with content of the logical regions with static content so that the possibility of future erase operations of these physical regions is reduced.
摘要:
Methods and structures for appending metadata with recorded data in a dynamic mapped storage device. In a dynamically mapped storage device in which all user supplied logical blocks are dynamically mapped by the storage device controller to physical disk blocks, features and aspects hereof allow presently unused physical space to be used for storing additional metadata associated with recorded data. As the current capacity ratio of the storage device increases, appending of metadata may cease and previously recorded data including metadata may be re-recorded (migrated) to eliminate the appended metadata. The appended metadata may be used for enhanced diagnosis and analysis of characteristics of the operating storage device and may be used to restore the content of the storage device to an earlier state. The metadata may include, for example, track following position of the read/write head, temperature, head flying height, and time of day.
摘要:
Methods and structures for mapping of logical to physical block addresses within a disk drive to provide independence of the logical block size and the physical disk block size. The independence of the logical and physical block sizes enables numerous beneficial features to improve disk drive capacity, performance and reliability. In one exemplary aspect, indirect mapping table structures and methods map an LBA to an associated IBA representing a block of the same size as the logical block. The IBA is then converted to a corresponding starting quantum unit of data identified by a QA. The QA is, in turn, converted to a disk block identified by a starting DBA and an offset within that DBA. The disk block may be of variable size and is independent of the size of the identified LBA. Numerous other features are enabled by the logical to physical mapping features hereof.