New Paragraph

Paragraphs

Actions Matter Content Para # Notes Modified
View Edit
Delete
US-20150012794-A1 In some embodiments, the adjustment module 306 may adjust a media parameter that is modifiable by way of an interface. The interface may comprise a publicly known interface or a proprietary interface and may include use of particular command instructions and/or use of particular parameters, register settings, driver settings, controller settings, a particular set of command instruction sequences, or other differences from regular commands (general purpose commands) or settings used to interface with or manage the set of storage cells for the non-volatile memory media 122. 103 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The adjustment module 306 may adjust a media parameter once during initialization of the non-volatile memory media 122, dynamically with each command issued to the non-volatile memory media 122, or during operation of the non-volatile memory media 122 in response to triggers such as events or time intervals. The non-volatile memory controller 124, in one embodiment, proactively sets one or more media parameters for the non-volatile memory media 122 to improve the utility of the non-volatile memory media 122, to reduce errors, and the like. 102 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In various embodiments, the adjustment module 306 may adjust, set, or otherwise determine one or more media parameters that affect various regions of non-volatile memory media 122. For example, the adjustment module 306 may adjust a media parameter for a physical or logical page, physical or logical erase block, chip, die, plurality of chips or dies, or the like, without affecting other regions of non-volatile memory media 122 for a non-volatile memory device 120. In another embodiment, the adjustment module 306 may adjust a media parameter that affects the non-volatile memory device 120 as a whole. 101 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In one embodiment, the adjustment module 306 may adjust individual media parameters separately. In another embodiment, the adjustment module 306 may adjust multiple media parameters together. For example, in a certain embodiment, the non-volatile memory media 122 may include storage cells which encode multiple bits per cell using multiple states per cell, separated by read voltage thresholds. In a further embodiment, multi-level cell (MLC) Flash memory may store two bits per cell by using four states per cell, separated by three read voltage thresholds. An error may occur if a voltage level for the cell drifts from one state past a read voltage threshold into an adjacent state. Such errors may occur due to read disturbs, program disturbs, stress-induced leakage current, or other phenomena that may affect the stored charge, or voltage level, of a Flash memory cell. If the error information suggests drifting voltage levels, the adjustment module 306 may compensate by adjusting individual read voltage thresholds, or by adjusting the three read voltage thresholds together, depending on if the amount of voltage drift is similar or different for each state. 100 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In various embodiments, a media parameter may include one or more storage thresholds, such as one or more read voltage thresholds, a bias for multiple read voltage thresholds, a resistivity threshold, a programming threshold, an erase threshold, a hardware driver level threshold, a storage controller level threshold, or the like. A read voltage threshold is a voltage level that separates discrete values stored in storage cells of the non-volatile memory media 122. Different non-volatile memory technologies may use different thresholds other than voltages to distinguish between discrete states. Phase change RAM or PRAM, for example, stores data in chalcogenide glass that has different electrical resistivity in different states. For PRAM, the adjustment module 306 may determine, set, and/or adjust resistivity thresholds that distinguish between discrete storage states. In light of this disclosure, various media parameters are clear that the adjustment module 306 may adjust. Further embodiments of adjusting media parameters are described with reference to the “configuration parameters” of U.S. patent application Ser. No. 13/719,045 entitled “Managing Non-Volatile Media” and filed Dec. 18, 2012 for Robert Wood et al., which is incorporated herein by reference in its entirety. 99 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In certain embodiments, a media parameter may be a parameter related to or associated with writing, storing, programming, reading, or erasing data using non-volatile memory media 122. Media parameters may relate to writing to, or programming, storage cells of the non-volatile memory media 122, reading from storage cells, erasing storage cells, managing storage cells, device driver or storage controller settings for storage cells, or the like. A media parameter for a set of storage cells may be associated with a device driver such as an SML 130 for the non-volatile memory device 120, with a non-volatile memory controller 124, or the like, and may relate to how the device driver and/or non-volatile memory controller 124 use, manage, and interact with the set of storage cells and/or the non-volatile memory media 122. 98 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The adjustment module 306, in one embodiment, is configured to determine, adjust, or set one or more media parameters for accessing non-volatile memory media 122. In one embodiment, the adjustment module 306 may determine one or more media parameters based on access data successfully decoded by the primary ECC module 302 and/or the secondary ECC module 304. In a further embodiment, the adjustment module 306 may determine one or more media parameters based on error information determined by the primary ECC module 302 and/or the secondary ECC module 304 through decoding or attempting to decode one or more ECC chunks. In one embodiment, the adjustment module 306 may adjust one or more media parameters in response to the secondary ECC module 304 determining that at least one ECC chunk is correctable using the secondary error correcting code. In various embodiments, a means for adjusting one or more media parameters may include an adjustment module 306, a configuration module 150, a non-volatile memory controller 124, a non-volatile memory media controller 126, a write pipeline 240, a read pipeline 241, other logic hardware and/or other executable code stored on a computer readable storage medium. Other embodiments may include similar or equivalent means for adjusting media parameters. 97 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The storage management layer 130 may be configured to provide storage services to one or more storage clients 116. The storage clients 116 may include local storage clients 116 operating on the computing device 110 and/or remote, storage clients 116 accessible via the network (and network interface 113). The storage clients 116 may include, but are not limited to: operating systems, file systems, database applications, server applications, kernel-level processes, user-level processes, applications, and the like. 52 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In one embodiment, the configuration module 150 is configured to adjust media parameters for the non-volatile memory media 122 in response to receiving a storage request from the SML 130 via a bus 125 or the like. The configuration module 150 may be further configured to transfer data to/from the SML 130 and/or storage clients 116 via the bus 125. Accordingly, the configuration module 150, in some embodiments, may comprise and/or be in communication with one or more direct memory access (DMA) modules, remote DMA modules, bus controllers, bridges, buffers, and so on to facilitate the transfer of storage requests and associated data. In another embodiment, the configuration module 150 may receive storage requests as an API call from a storage client 116, as an IO-CTL command, or the like. The configuration module 150 is described in greater detail below with regard to FIGS. 3 and 4. 60 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 In one embodiment, the configuration module 150 may comprise executable software code, such as a device driver, SML 130, or the like, stored on the computer readable storage media 114 for execution on the processor 111. In another embodiment the configuration module 150 may comprise logic hardware of one or more of the non-volatile memory devices 120A-N, such as a non-volatile memory media controller 126A-N, a non-volatile memory controller 124, a device controller, a field-programmable gate array (FPGA) or other programmable logic, firmware for an FPGA or other programmable logic, microcode for execution on a microcontroller, an application-specific integrated circuit (ASIC), or the like. In a further embodiment, the configuration module 150 may include a combination of both executable software code and logic hardware. 59 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The non-volatile memory system 102, in the depicted embodiment, includes a configuration module 150. The configuration module 150, in one embodiment, is configured to determine whether an error correcting code (ECC) chunk or ECC block for the non-volatile memory device 120 is correctable using a primary or first error correcting code. If the ECC chunk or block is not correctable using the primary error correcting code, the configuration module 150 determines whether the ECC chunk or block is correctable using a secondary or second error correcting code different from the primary error correcting code. If the ECC chunk or block is correctable using the secondary error code, the configuration module 150 uses error information from a decoder for the secondary error correcting code to adjust media parameters for accessing the non-volatile memory media 122. Adjusting media parameters based on multiple levels of error correcting codes for at least one ECC chunk or block allows the non-volatile memory device 120 to store and/or retrieve additional ECC chunks or blocks using a weaker error correcting code (e.g., a code that uses less computational or storage overhead than would otherwise be used, to provide sufficient levels of correctability for the additional ECC chunks or blocks). 58 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The SML 130 may further comprise a non-volatile memory device interface 139 configured to transfer data, commands, and/or queries to the non-volatile memory devices 120A-N over a bus 125, which may include, but is not limited to: a peripheral component interconnect express (PCI Express or PCIe) bus, a serial Advanced Technology Attachment (ATA) bus, a parallel ATA bus, a small computer system interface (SCSI), FireWire, Fibre Channel, a Universal Serial Bus (USB), a PCIe Advanced Switching (PCIe-AS) bus, a network, Infiniband, SCSI RDMA, or the like. The non-volatile memory device interface 139 may communicate with the non-volatile memory devices 120A-N using input-output control (IO-CTL) command(s), IO-CTL command extension(s), remote direct memory access, or the like. 57 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The SML 130 may further comprise a log storage module 137 that is configured to store data in a contextual, log format. The contextual, log data format may comprise associating data with persistent contextual metadata, such as the logical address of the data, or the like. The contextual, log format may further comprise associating data with respective sequence identifiers on the non-volatile memory media 122A-N, which define an ordered sequence of storage operations performed on the non-volatile memory devices 120A-N, as described above. 56 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The SML 130 may provide storage services through one or more interfaces, which may include, but are not limited to: a block I/O interface, an extended storage management layer interface, a cache interface, and the like. The SML 130 may present a logical address space 134 to the storage clients 116 through one or more interfaces. As discussed above, the logical address space 134 may comprise a plurality of logical addresses, each corresponding to respective media locations on one or more of the non-volatile memory devices 120A-N. The SML 130 may maintain metadata 135 comprising any-to-any mappings between logical addresses and media locations, as described above. 55 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The cache interface 133 may expose cache-specific features accessible via the storage management layer 130. Also, in some embodiments, the SML interface 132 presented to the storage clients 116 provides access to data transformations implemented by the non-volatile memory devices 120A-N and/or the non-volatile memory media controllers 126A-N. 54 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The storage management layer 130 comprises and/or is communicatively coupled to one or more non-volatile memory devices 120A-N. The non-volatile memory devices 120A-N may include different types of non-volatile memory devices including, but not limited to: solid-state storage devices, hard drives, SAN storage resources, or the like. The non-volatile memory devices 120A-N may comprise respective non-volatile memory media controllers 126A-N and non-volatile memory media 122A-N. As illustrated in FIG. 1B, The SML 130 may provide access to the non-volatile memory devices 120A-N via a traditional block I/O interface 131. Additionally, the SML 130 may provide access to enhanced functionality (large, virtual address space) through the SML interface 132. The metadata 135 may be used to manage and/or track storage operations performed through any of the Block I/O interface 131, SML interface 132, cache interface 133, or other, related interfaces. 53 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 FIG. 1B is a block diagram of another embodiment of a system 101 comprising a configuration module 150. As described above, the configuration module 150 may be part of and/or in communication with a storage management layer 130. The SML 130 may operate on a non-volatile memory system 102 of a computing device 110, which, as discussed above, may comprise a processor 111, volatile memory 112, communication interface 113, and non-transitory, computer readable storage media 114. The communication interface 113 may comprise one or more network interfaces configured to communicatively couple the computing device 110 (and/or non-volatile memory controller 124) to a network 115 and/or to one or more remote, network-accessible storage clients 116. 61 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The computing device 110 may further comprise a non-transitory, computer readable storage media 114. The computer readable storage media 114 may comprise executable instructions configured to cause the computing device 110 (e.g., processor 111) to perform steps of one or more of the methods disclosed herein. Alternatively, or in addition, the storage management layer 130 and/or one or more modules thereof may be embodied as one or more computer readable instructions stored on the non-transitory storage media 114. 51 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 FIG. 1A is a block diagram of one embodiment of a system 100 comprising a configuration module 150. The configuration module 150 may be part of and/or in communication with a storage management layer (SML) 130. The SML 130 may operate on a non-volatile memory system 102 of a computing device 110, which may comprise a processor 111, volatile memory 112, and a communication interface 113. The processor 111 may comprise one or more central processing units, one or more general-purpose processors, one or more application-specific processors, one or more virtual processors (e.g., the computing device 110 may be a virtual machine operating within a host), one or more processor cores, or the like. The communication interface 113 may comprise one or more network interfaces configured to communicatively couple the computing device 110 (and/or non-volatile memory controller 124) to a communication network, such as a Internet Protocol network, a Storage Area Network, or the like. 50 Added by DJM 2 2021 2/22/21, 12:00 AM
View Edit
Delete
US-20150012794-A1 The log format described herein may allow valid data to be distinguished from invalid data based upon the contents of the non-volatile memory media, and independently of other metadata. As discussed above, invalid data may not be removed from the non-volatile memory media until the memory division comprising the data is reclaimed. Therefore, multiple “versions” of data having the same context may exist on the non-volatile memory media (e.g., multiple versions of data having the same logical addresses). The sequence indicators associated with the data may be used to distinguish invalid versions of data from the current, up-to-date version of the data; the data that is the most recent in the log is the current version, and previous versions may be identified as invalid. 49 Added by DJM 2 2021 2/22/21, 12:00 AM

Page 403 of 438, showing 20 record(s) out of 8,747 total