|
View Edit Delete |
US10998041B1 |
In various embodiments, the storage device 200 may be in the form of a dual-inline memory module ("DIMM"), a daughter card, or a micro-module. In another embodiment, the storage device 200 is a component within a rack-mounted blade. In another embodiment, the storage device 200 is contained within a package that is integrated directly onto a higher-level assembly (e.g., mother board, laptop, graphics processor). In another embodiment, individual components comprising the storage device 200 are integrated directly onto a higher-level assembly without intermediate packaging. The storage device 200 is described in further detail with regard to FIG. 2. |
44 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
"Processor" refers to any circuitry, component, chip, die, package, or module configured to receive, interpret, decode, and execute machine instructions. Examples of a processor may include, but are not limited to, a central processing unit, a general-purpose processor, an application-specific processor, a graphics processing unit (GPU), a field programmable gate array (FPGA), Application Specific Integrated Circuit (ASIC), System on a Chip (SoC), virtual processor, processor core, and the like. |
45 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
"Circuitry" refers to electrical circuitry having at least one discrete electrical circuit, electrical circuitry having at least one integrated circuit, electrical circuitry having at least one application specific integrated circuit, circuitry forming a general purpose computing device configured by a computer program (e.g., a general purpose computer configured by a computer program which at least partially carries out processes or devices described herein, or a microprocessor configured by a computer program which at least partially carries out processes or devices described herein), circuitry forming a memory device (e.g., forms of random access memory), or circuitry forming a communications device (e.g., a modem, communications switch, or optical-electrical equipment). |
46 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
In a further embodiment, instead of being connected directly to the host 106 as DAS, the data storage device 200 may be connected to the host 106 over a data network. For example, the data storage device 200 may include a storage area network ("SAN") storage device, a network attached storage ("NAS") device, a network share, or the like. In one embodiment, the storage system 100 may include a data network, such as the Internet, a wide area network ("WAN"), a metropolitan area network ("MAN"), a local area network ("LAN"), a token ring, a wireless network, a fiber channel network, a SAN, a NAS, ESCON, or the like, or any combination of networks. A data network may also include a network from the IEEE 802 family of network technologies, such Ethernet, token ring, Wi-Fi, Wi-Max, and the like. A data network may include servers, switches, routers, cabling, radios, and other equipment used to facilitate networking between the host 106 and the data storage device 200. |
47 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
The storage system 100 includes at least one host 106 connected to the storage device 200. Multiple hosts 106 may be used and may comprise a server, a storage controller of a storage area network ("SAN"), a workstation, a personal computer, a laptop computer, a handheld computer, a supercomputer, a computer cluster, a network switch, router, or appliance, a database or storage appliance, a data acquisition or data capture system, a diagnostic system, a test system, a robot, a portable electronic device, a wireless device, or the like. In another embodiment, a host 106 may be a client, and the storage device 200 may operate autonomously to service data requests sent from the host 106. In this embodiment, the host 106 and storage device 200 may be connected using a computer network, system bus, Direct Attached Storage (DAS), or other communication means suitable for connection between a computer and an autonomous storage device 200. |
48 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
The depicted embodiment shows a user application 108 in communication with a storage client 110 as part of the host 106. In one embodiment, the user application 108 is a software application operating on or in conjunction with the storage client 110. "Storage client" refers to any hardware, software, firmware, or logic component or module configured to communicate with a storage device in order to use storage services. Examples of a storage client include, but are not limited to, operating systems, file systems, database applications, a database management system ("DBMS"), server applications, a server, a volume manager, kernel-level processes, user-level processes, applications, mobile applications, threads, processes, and the like. |
49 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
"Software" refers to logic implemented as processor-executable instructions in a machine memory (e.g., read/write volatile memory media or non-volatile memory media). |
50 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
"Hardware" refers to functional elements embodied as analog and/or digital circuitry. |
51 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
"Firmware" refers to logic embodied as processor-executable instructions stored on volatile memory media and/or non-volatile memory media. |
52 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
The storage client 110 manages files and data and utilizes the functions and features of the storage controller 102 and associated memory dies 104. Representative examples of storage clients include, but are not limited to, a server, a file system, an operating system, a database management system ("DBMS"), a volume manager, and the like. The storage client 110 is in communication with the storage controller 102 within the storage device 200. In some embodiments, the storage client 110 may include remote storage clients operating on hosts 106 or otherwise accessible via the network 116. Storage clients 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. |
53 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
In one embodiment, the storage system 100 includes one or more clients connected to one or more hosts 106 through one or more computer networks 116. A host 106 may be a server, a storage controller of a SAN, a workstation, a personal computer, a laptop computer, a handheld computer, a supercomputer, a computer cluster, a network switch, router, or appliance, a database or storage appliance, a data acquisition or data capture system, a diagnostic system, a test system, a robot, a portable electronic device, a wireless device, or the like. The network 116 may include the Internet, a wide area network ("WAN"), a metropolitan area network ("MAN"), a local area network ("LAN"), a token ring, a wireless network, a fiber channel network, a SAN, network attached storage ("NAS"), ESCON, or the like, or any combination of networks. The network 116 may also include a network from the IEEE 802 family of network technologies, such Ethernet, token ring, WiFi, WiMax, and the like. |
54 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
The network 116 may include servers, switches, routers, cabling, radios, and other equipment used to facilitate networking the host 106 or hosts 106 and clients. In one embodiment, the storage system 100 includes multiple hosts 106 that communicate as peers over a network 116. In another embodiment, the storage system 100 includes multiple storage devices 200 that communicate as peers over a network 116. One of skill in the art will recognize other computer networks comprising one or more computer networks and related equipment with single or redundant connection between one or more clients or other computer with one or more storage devices 200 connected to one or more hosts. In one embodiment, the storage system 100 includes two or more storage devices 200 connected through the network 116 to a remote host 106, without being directly connected to or integrated within a local host 106. |
55 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
In one embodiment, the storage client 110 communicates with the storage controller 102 through a host interface comprising an Input/Output (I/O) interface. For example, the storage device 200 may support the ATA interface standard, the ATA Packet Interface ("ATAPI") standard, the small computer system interface ("SCSI") standard, and/or the Fibre Channel standard which are maintained by the InterNational Committee for Information Technology Standards ("INCITS"). |
56 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
In certain embodiments, the storage media of a memory device is divided into volumes or partitions. Each volume or partition may include a plurality of sectors. Traditionally, a sector is 512 bytes of data. One or more sectors are organized into a block (referred to herein as both block and data block, interchangeably). |
57 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
In one example embodiment, a data block includes eight sectors which is 4 KB. In certain storage systems, such as those interfacing with the Windows.RTM. operating systems, the data blocks are referred to as clusters. In other storage systems, such as those interfacing with UNIX, Linux, or similar operating systems, the data blocks are referred to simply as blocks. A block or data block or cluster represents a smallest physical amount of storage space on the storage media that is managed by a storage manager, such as a storage controller, storage system, storage unit, storage device, or the like. |
58 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
In some embodiments, the storage controller 102 may be configured to store data on one or more asymmetric, write-once storage media, such as solid-state storage memory cells within the memory die 104. "Write once storage media" refers to a storage media such as a storage cell that is reinitialized (e.g., erased) before new data or a change to the data is written or programmed thereon. In other words, data of a write once storage media cannot be overwritten; the write once storage media must be erased before subsequently writing data to the write once storage media. "Asymmetric storage media" refers to a storage media having different latencies for different storage operations. Many types of solid-state storage media (e.g., memory dies) are asymmetric; for example, a read operation may be much faster than a write/program operation, and a write/program operation may be much faster than an erase operation (e.g., reading the storage media may be hundreds of times faster than erasing, and tens of times faster than programming the storage media). |
59 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
"Read operation" refers to an operation performed on a memory cell in order to obtain, sense, detect, or determine a value for data represented by a state characteristic of the memory cell. |
60 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
"Program" refers to a storage operation in which a characteristic of a memory cell is changed from a first state (often, an erased state) to a second state. A program storage operation may also be referred to as a write operation herein. |
61 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
In certain embodiments, a program storage operation may include a series of iterations that incrementally change the characteristic until at least a target level of change is achieved. In other embodiments, a program storage operation may cause the attribute to change to a target level with a single iteration. |
62 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |
|
View Edit Delete |
US10998041B1 |
The memory die 104 may be partitioned into memory divisions that can be erased as a group (e.g., erase blocks) in order to, inter alia, account for the asymmetric properties of the memory die 104 or the like. As such, modifying a single data segment in-place may involve erasing the entire erase block comprising the data, and rewriting the modified data to the erase block, along with the original, unchanged data. This may result in inefficient write amplification, which may excessively wear the memory die 104. |
63 |
Added by DJM 12 2021 |
12/22/21, 12:00 AM |