US20160034202A1 - Multi-tiered storage device system and method thereof - Google Patents
Multi-tiered storage device system and method thereof Download PDFInfo
- Publication number
- US20160034202A1 US20160034202A1 US14/746,878 US201514746878A US2016034202A1 US 20160034202 A1 US20160034202 A1 US 20160034202A1 US 201514746878 A US201514746878 A US 201514746878A US 2016034202 A1 US2016034202 A1 US 2016034202A1
- Authority
- US
- United States
- Prior art keywords
- storage
- storage device
- data
- group
- storage devices
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/06—Answer-back mechanisms or circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
Definitions
- the disclosure generally relates to multi-tiered storage devices and particularly to controlling multi-tiered storage devices.
- SSDs are storage devices based on integrated circuits (ICs), using for example flash memory and offering higher-cost storage. While byte-for-byte SSDs are more expensive than HDDs, an SSD offers lower access times and lower latency than HDDs. Solutions exist which attempt to consolidate the advantages of different technologies, for example by creating hybrid drives, however the efficiency of these solutions is varying. Furthermore, SSDs constructed in accordance with different technologies offer different levels of write endurance.
- Exemplary embodiments overcome the above disadvantages and other disadvantages not described above. Also, an exemplary embodiment is not required to overcome the disadvantages described above, and an exemplary embodiment of the present inventive concept may not overcome any of the problems described above.
- One or more exemplary embodiments provide a method for controlling a multi-tiered storage device (MTSD).
- the method includes receiving a block of data using a controller of the MTSD, the MTSD including a first storage including one or more storage devices, and a second storage including one or more storage devices, wherein each storage device of the first storage has a higher write endurance than each storage device of the second storage; writing, by the controller, the received block of data to a first storage device of the first storage; assigning a timestamp respective of the received block of data; writing, by the controller, the received block of data to a second storage device of the second storage, in response to determining that a time elapsed since the timestamp is above a first threshold value.
- the method may further include erasing the received block of data from the first storage device of the first storage, in response to determining that the received block of data was written to the second storage device of the second storage.
- a storage device of the first storage may be one from among a solid-state drive (SSD), and a hard-disk drive (HDD).
- SSD solid-state drive
- HDD hard-disk drive
- the method may further include detecting a degradation in a physical parameter of the first storage device of the first storage; and associating the first storage device with the second storage.
- the method may further include duplicating at least a portion of data stored on the first storage device of the first storage to another storage device of the first storage; and removing the duplicated data from the first storage device of the first storage.
- Detection of the degradation in the physical parameter may include determining that the physical parameter of the first storage device is below a second threshold value, the physical parameter includes at least one of endurance, performance, update latency and access time.
- the system includes a processing unit (PU); an input/output (I/O) interface communicatively coupled to the MTSD, the MTSD includes a first storage including one or more storage devices, and a second storage including one or more storage devices, each storage device of the first storage has a higher write endurance than each storage device of the second storage; and a memory communicatively coupled to the PU, the memory storing instructions that when executed by the PU configure the system to: receive a block of data; write the received block of data to a first storage device of the first storage; assign a timestamp respective of the received block of data; and write the received block of data to a second storage device of the second storage, upon determination that a time elapsed since the timestamp is above a first threshold value.
- PU processing unit
- I/O input/output
- the memory may further store instructions that when executed by the PU configure the system to erase the received block of data from the first storage device of the first storage, in response to determining that the received block of data was written to the second storage device of the second storage.
- the first storage device may be one from among a solid-state drive (SSD), and a hard-disk drive (HDD).
- SSD solid-state drive
- HDD hard-disk drive
- the memory may further store instructions that when executed by the PU configure the system to: detect a degradation in a physical parameter of the first storage device of the first storage; and associate the first storage device with the second storage.
- the memory may further store instructions that when executed by the PU configure the system to: duplicate at least a portion of data stored on the first storage device of the first storage to another storage device of the first storage; and remove the duplicated data from the first storage device.
- the memory may further store instructions that when executed by the PU to detect the degradation in the physical parameter further configure the system to determine that the physical parameter of the first storage device is below a second threshold value, the physical parameter includes at least one of endurance, performance, update latency and access time.
- a non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute any of the methods described above.
- a system including: a controller; and a memory that stores information arranging storage devices in a multi-tiered storage device (MTSD) into at least two groups including a first group of storage devices and a second group of storage devices, the storage devices in the first group of storage devices have a write endurance that is higher than a write endurance of the storage devices of the second group of storage devices, wherein in response to the write endurance of a first storage device of the first group of storage devices falling below a threshold, the controller re-assigns the first storage device to the second group of storage devices.
- MTSD multi-tiered storage device
- the controller may further cause data on the first storage device to be written to a second storage device of the first group of storage devices.
- the system may be connected to the MTSD over a network.
- FIG. 1 is a schematic illustration of system for controlling a multi-tiered storage device (MTSD) implemented according to an embodiment.
- MTSD multi-tiered storage device
- FIG. 2 is a schematic illustration of an MTSD in accordance with an embodiment.
- FIG. 3 is a flowchart of a method for controlling an MTSD in accordance with an embodiment.
- a multi-tiered storage device includes a first group of storage devices and a second group of storage devices.
- the groups of storage devices may be determined by the relative endurance of the storage devices. For example, each storage device of the first group of storage devices may have a higher endurance than each storage device of a second group of storage devices of the MTSD.
- a block of data may be received by a controller of the MTSD, and written to a first storage device that is part of the first group of storage devices.
- the block of data may be written to a second storage device that is part of the second group of storage devices and the block of data may be erased from the first storage device.
- the life span of the second storage device (or any storage device in the second group of storage devices) may be preserved.
- the classification of a storage device may change from the first group of storage devices to the second group of storage device. For example, over time the endurance of a certain storage device may degrade.
- FIG. 1 is an exemplary and non-limiting schematic illustration of a system 100 for controlling a multi-tiered storage device implemented according to an exemplary embodiment.
- the system 100 includes at least one processing element 110 , for example, a central processing unit (CPU).
- the CPU is coupled via a bus 105 to a memory 120 .
- the memory 120 further includes a memory portion 122 that contains instructions that when executed by the processing element 110 perform the method described in more detail herein.
- the memory 120 may be further used as a working scratch pad for the processing element 110 , a temporary storage, and others, as the case may be.
- the memory 120 may include volatile memory such as, but not limited to, random access memory (RAM), or non-volatile memory (NVM), such as, but not limited to, Flash memory.
- RAM random access memory
- NVM non-volatile memory
- the memory 120 may further include memory portion 124 containing a timestamp respective of received blocks of data.
- the processing element 110 may be coupled to an input device 150 via the bus 105 , for example.
- the processing element 110 may be further coupled with a database 130 via the bus 105 , for example.
- the database 130 may hold a copy of the method executed in accordance with the disclosed technique.
- the database 130 may further include storage portion 135 containing a list of storage devices associated with an MTSD 200 .
- the system 100 is communicatively coupled with the MTSD 200 .
- the MTSD 200 is coupled via the bus 105 to the CPU.
- the MTSD may be communicatively coupled with the system 100 through, for example, a network.
- the network may be configured to provide connectivity of various sorts, as may be desired based on the particular implementation, including but not limited to, wired and/or wireless connectivity, including, for example, local area network (LAN), wide area network (WAN), metro area network (MAN), worldwide web (WWW), Internet, and any combination thereof, as well as cellular connectivity.
- LAN local area network
- WAN wide area network
- MAN metro area network
- WWW worldwide web
- FIG. 2 is a non-limiting exemplary schematic illustration of the MTSD 200 .
- the MTSD 200 includes a first group of storage devices 210 - 1 through 210 -N and a second group of storage devices 220 - 1 through 220 -M, where ‘N’ and ‘M’ are integers having a value equal to, or greater than ‘1’. N and M may be the same value or different values.
- the first group of storage devices 210 is characterized in that each storage device 210 - 1 through 210 -N has a higher write endurance than each of the storage devices of the second group of storage devices 220 .
- an MTSD 200 may associate all storage devices with a write endurance of fifty thousand (50,000) cycles and above with the first group of storage devices, and all storage devices with a write endurance below 50,000 cycles to the second group of storage devices 220 .
- the MTSD 200 is coupled with a controller 230 .
- the first group of storage devices 210 may include solid state drives (SSDs).
- the second group of storage devices 220 may include SSDs and/or hard disk drives (HDDs).
- the MTSD may have more than two tiers (groups) of storage devices, wherein each tier includes storage devices which each have a write endurance level that is within the threshold of that tier.
- a controller may re-designate a degraded storage device from the first group of storage devices 210 to the second group of storage devices 220 .
- Degradation may be determined, for example, by a controller 230 or a system 100 , according to a threshold respective of a physical characteristic of a storage device, such as access time of the device, update latency, endurance or performance.
- FIG. 3 is a non-limiting exemplary flowchart of a method for controlling a multi-tiered storage device (MTSD) in accordance with an embodiment.
- a block of data is received by a controller 230 to be written to the MTSD 200 .
- the received block of data is written by the controller 230 to a storage device of a first group of storage devices 210 of the MTSD 200 .
- Each storage device of the first group of storage devices 210 has a higher endurance than each storage device of a second group of storage devices 220 of the MTSD 200 .
- a timestamp is assigned to the block of data, to determine the time in which the received block of data was written.
- a time elapsed is determined from the timestamp.
- a check is performed to determine if the determined time elapsed since the timestamp is above a determined first threshold. If yes, execution continues at S 360 , otherwise execution continues at S 340 .
- the threshold may be static, dynamic or adaptive. Static thresholds are predetermined thresholds that remain constant. Dynamic thresholds are forcefully changed, for example, at a certain time of day, a certain day of the year, and the like. Adaptive thresholds are changed in response to changes in characteristics of the MTSD 200 and may vary depending on a variety of parameters, such as total free memory in the MTSD 200 , and the like.
- the received block of data is written to a storage device of the second group of storage devices 220 .
- the block of data on the storage device of the first group of storage devices 210 is now redundant, and may be erased, in some embodiments.
- a degradation in a physical parameter of a storage device 210 - 1 of the first group of storage devices 210 is detected. Detection of the degradation includes determining that the physical parameter of the at least a storage device is below a second threshold value.
- the physical parameter may be endurance, performance, update latency, access time, and the like.
- At least a portion of data stored on the storage device 210 - 1 is duplicated and stored on the storage device 210 - 2 of the first group of storage devices 210 . Once the data is stored on the second storage device 210 - 2 , the duplicated data is removed from the first storage device 210 - 1 and the first storage device 210 - 1 becomes associated with the second group of storage devices 220 .
- the principles herein are implemented as hardware, firmware, software or any combination thereof.
- the software is preferably implemented as an application program tangibly embodied on a program storage unit or computer readable medium.
- the application program may be uploaded to, and executed by, a machine including any suitable architecture.
- the machine is implemented on a computer platform having hardware such as a processing unit (“CPU”), a memory, and input/output interfaces.
- the computer platform may also include an operating system and microinstruction code.
- the various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such computer or processor is explicitly shown.
- various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit and/or display unit.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
A system for controlling a multi-tiered storage device (MTSD) includes a first group of storage devices and a second group of storage devices, wherein each storage device of the first group of storage devices has a higher endurance than each storage device of a second group of storage devices of the MTSD. A block of data is received by a controller of the MTSD, and is written to a storage device of the first group of storage devices. Upon determination that the block of data has been written to infrequently, the block of data is written to a storage device of the second group of storage devices. The block of data may then be erased from the storage device of the first group of storage devices. In some embodiments, a storage device from the first group is associated with the second group, upon determination that the storage has degraded.
Description
- This Application claims the benefit of U.S. provisional Application Nos. 62/126,920 filed on Mar. 2, 2015, 62/119,412 filed on Feb. 23, 2015, 62/096,908 filed on Dec. 26, 2014, 62/085,568 filed on Nov. 30, 2014, and 62/030,700 filed on Jul. 30, 2014, the entire disclosures of which are incorporated herein by reference for all purposes.
- 1. Field
- The disclosure generally relates to multi-tiered storage devices and particularly to controlling multi-tiered storage devices.
- 2. Description of Related Art
- Storage devices constructed in accordance with different technologies offer different advantages for different types of data. Hard disk drives (HDDs) are typically electro-mechanic devices storing data magnetically, offering low-cost storage. Solid-state drives (SSDs) are storage devices based on integrated circuits (ICs), using for example flash memory and offering higher-cost storage. While byte-for-byte SSDs are more expensive than HDDs, an SSD offers lower access times and lower latency than HDDs. Solutions exist which attempt to consolidate the advantages of different technologies, for example by creating hybrid drives, however the efficiency of these solutions is varying. Furthermore, SSDs constructed in accordance with different technologies offer different levels of write endurance.
- Exemplary embodiments overcome the above disadvantages and other disadvantages not described above. Also, an exemplary embodiment is not required to overcome the disadvantages described above, and an exemplary embodiment of the present inventive concept may not overcome any of the problems described above.
- One or more exemplary embodiments provide a method for controlling a multi-tiered storage device (MTSD). The method includes receiving a block of data using a controller of the MTSD, the MTSD including a first storage including one or more storage devices, and a second storage including one or more storage devices, wherein each storage device of the first storage has a higher write endurance than each storage device of the second storage; writing, by the controller, the received block of data to a first storage device of the first storage; assigning a timestamp respective of the received block of data; writing, by the controller, the received block of data to a second storage device of the second storage, in response to determining that a time elapsed since the timestamp is above a first threshold value.
- The method may further include erasing the received block of data from the first storage device of the first storage, in response to determining that the received block of data was written to the second storage device of the second storage.
- A storage device of the first storage may be one from among a solid-state drive (SSD), and a hard-disk drive (HDD).
- The method may further include detecting a degradation in a physical parameter of the first storage device of the first storage; and associating the first storage device with the second storage.
- The method may further include duplicating at least a portion of data stored on the first storage device of the first storage to another storage device of the first storage; and removing the duplicated data from the first storage device of the first storage.
- Detection of the degradation in the physical parameter may include determining that the physical parameter of the first storage device is below a second threshold value, the physical parameter includes at least one of endurance, performance, update latency and access time.
- According to an aspect of another exemplary embodiment there is a system for controlling a multi-tiered storage device (MTSD). The system includes a processing unit (PU); an input/output (I/O) interface communicatively coupled to the MTSD, the MTSD includes a first storage including one or more storage devices, and a second storage including one or more storage devices, each storage device of the first storage has a higher write endurance than each storage device of the second storage; and a memory communicatively coupled to the PU, the memory storing instructions that when executed by the PU configure the system to: receive a block of data; write the received block of data to a first storage device of the first storage; assign a timestamp respective of the received block of data; and write the received block of data to a second storage device of the second storage, upon determination that a time elapsed since the timestamp is above a first threshold value.
- The memory may further store instructions that when executed by the PU configure the system to erase the received block of data from the first storage device of the first storage, in response to determining that the received block of data was written to the second storage device of the second storage.
- The first storage device may be one from among a solid-state drive (SSD), and a hard-disk drive (HDD).
- The memory may further store instructions that when executed by the PU configure the system to: detect a degradation in a physical parameter of the first storage device of the first storage; and associate the first storage device with the second storage.
- The memory may further store instructions that when executed by the PU configure the system to: duplicate at least a portion of data stored on the first storage device of the first storage to another storage device of the first storage; and remove the duplicated data from the first storage device.
- The memory may further store instructions that when executed by the PU to detect the degradation in the physical parameter further configure the system to determine that the physical parameter of the first storage device is below a second threshold value, the physical parameter includes at least one of endurance, performance, update latency and access time.
- A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute any of the methods described above.
- According to another exemplary aspect of the present disclosure there is a system including: a controller; and a memory that stores information arranging storage devices in a multi-tiered storage device (MTSD) into at least two groups including a first group of storage devices and a second group of storage devices, the storage devices in the first group of storage devices have a write endurance that is higher than a write endurance of the storage devices of the second group of storage devices, wherein in response to the write endurance of a first storage device of the first group of storage devices falling below a threshold, the controller re-assigns the first storage device to the second group of storage devices.
- In response to the write endurance of a first storage device of the first group of storage devices falling below a threshold, the controller may further cause data on the first storage device to be written to a second storage device of the first group of storage devices.
- The system may be connected to the MTSD over a network.
- Other features and aspects will be apparent from the following detailed description, the drawings, and the claims.
- The foregoing and other objects, features and advantages will become apparent and more readily appreciated from the following detailed description taken in conjunction with the accompanying drawings, in which:
-
FIG. 1 is a schematic illustration of system for controlling a multi-tiered storage device (MTSD) implemented according to an embodiment. -
FIG. 2 is a schematic illustration of an MTSD in accordance with an embodiment. -
FIG. 3 is a flowchart of a method for controlling an MTSD in accordance with an embodiment. - Below, exemplary embodiments will be described in detail with reference to accompanying drawings so as to be easily realized by a person having ordinary skill in the art. The exemplary embodiments may be embodied in various forms without being limited to the exemplary embodiments set forth herein. Descriptions of well-known parts are omitted for clarity, and like reference numerals refer to like elements throughout.
- The exemplary embodiments disclosed herein are only examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claims. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality.
- Storage devices degrade over time. For example, storage devices have an endurance. The term endurance as used herein can be considered as any of the life span of the storage device that a user can expect when reading and writing data, changing performance of the storage device over time, changing update latency of the storage device over time, changing access time of the storage device over time, and the like. A multi-tiered storage device (MTSD) includes a first group of storage devices and a second group of storage devices. The groups of storage devices may be determined by the relative endurance of the storage devices. For example, each storage device of the first group of storage devices may have a higher endurance than each storage device of a second group of storage devices of the MTSD.
- A block of data may be received by a controller of the MTSD, and written to a first storage device that is part of the first group of storage devices. Upon determination that the block of data has been written to infrequently, the block of data may be written to a second storage device that is part of the second group of storage devices and the block of data may be erased from the first storage device. In this way, the life span of the second storage device (or any storage device in the second group of storage devices) may be preserved. In some exemplary embodiments, the classification of a storage device may change from the first group of storage devices to the second group of storage device. For example, over time the endurance of a certain storage device may degrade. In this case, that certain storage device, which was originally part of the first group of storage devices, becomes part of the second group of storage devices. This reclassification may occur in response to determining that the endurance or lifespan of a certain storage device has degraded beyond the threshold for being classified in the first group. The threshold for determining which classification a storage device should receive is arbitrary and may be set by the designer.
-
FIG. 1 is an exemplary and non-limiting schematic illustration of asystem 100 for controlling a multi-tiered storage device implemented according to an exemplary embodiment. Thesystem 100 includes at least oneprocessing element 110, for example, a central processing unit (CPU). The CPU is coupled via abus 105 to amemory 120. Thememory 120 further includes amemory portion 122 that contains instructions that when executed by theprocessing element 110 perform the method described in more detail herein. Thememory 120 may be further used as a working scratch pad for theprocessing element 110, a temporary storage, and others, as the case may be. Thememory 120 may include volatile memory such as, but not limited to, random access memory (RAM), or non-volatile memory (NVM), such as, but not limited to, Flash memory. Thememory 120 may further includememory portion 124 containing a timestamp respective of received blocks of data. Theprocessing element 110 may be coupled to aninput device 150 via thebus 105, for example. Theprocessing element 110 may be further coupled with adatabase 130 via thebus 105, for example. Thedatabase 130 may hold a copy of the method executed in accordance with the disclosed technique. Thedatabase 130 may further includestorage portion 135 containing a list of storage devices associated with anMTSD 200. Thesystem 100 is communicatively coupled with theMTSD 200. - In some exemplary embodiments, the
MTSD 200 is coupled via thebus 105 to the CPU. In other exemplary embodiments, the MTSD may be communicatively coupled with thesystem 100 through, for example, a network. The network may be configured to provide connectivity of various sorts, as may be desired based on the particular implementation, including but not limited to, wired and/or wireless connectivity, including, for example, local area network (LAN), wide area network (WAN), metro area network (MAN), worldwide web (WWW), Internet, and any combination thereof, as well as cellular connectivity. -
FIG. 2 is a non-limiting exemplary schematic illustration of theMTSD 200. TheMTSD 200 includes a first group of storage devices 210-1 through 210-N and a second group of storage devices 220-1 through 220-M, where ‘N’ and ‘M’ are integers having a value equal to, or greater than ‘1’. N and M may be the same value or different values. The first group ofstorage devices 210 is characterized in that each storage device 210-1 through 210-N has a higher write endurance than each of the storage devices of the second group ofstorage devices 220. For example, anMTSD 200 may associate all storage devices with a write endurance of fifty thousand (50,000) cycles and above with the first group of storage devices, and all storage devices with a write endurance below 50,000 cycles to the second group ofstorage devices 220. TheMTSD 200 is coupled with acontroller 230. In some embodiments, the first group ofstorage devices 210 may include solid state drives (SSDs). In certain embodiments, the second group ofstorage devices 220 may include SSDs and/or hard disk drives (HDDs). In some embodiments, the MTSD may have more than two tiers (groups) of storage devices, wherein each tier includes storage devices which each have a write endurance level that is within the threshold of that tier. Some storage technologies, such as solid-state drive technology, have a natural degradation of the storage device. In such embodiments, a controller may re-designate a degraded storage device from the first group ofstorage devices 210 to the second group ofstorage devices 220. Degradation may be determined, for example, by acontroller 230 or asystem 100, according to a threshold respective of a physical characteristic of a storage device, such as access time of the device, update latency, endurance or performance. -
FIG. 3 is a non-limiting exemplary flowchart of a method for controlling a multi-tiered storage device (MTSD) in accordance with an embodiment. In S310 a block of data is received by acontroller 230 to be written to theMTSD 200. In S320 the received block of data is written by thecontroller 230 to a storage device of a first group ofstorage devices 210 of theMTSD 200. Each storage device of the first group ofstorage devices 210 has a higher endurance than each storage device of a second group ofstorage devices 220 of theMTSD 200. In S330 a timestamp is assigned to the block of data, to determine the time in which the received block of data was written. In S340 a time elapsed is determined from the timestamp. In S350 a check is performed to determine if the determined time elapsed since the timestamp is above a determined first threshold. If yes, execution continues at S360, otherwise execution continues at S340. The threshold may be static, dynamic or adaptive. Static thresholds are predetermined thresholds that remain constant. Dynamic thresholds are forcefully changed, for example, at a certain time of day, a certain day of the year, and the like. Adaptive thresholds are changed in response to changes in characteristics of theMTSD 200 and may vary depending on a variety of parameters, such as total free memory in theMTSD 200, and the like. In 5360 the received block of data is written to a storage device of the second group ofstorage devices 220. The block of data on the storage device of the first group ofstorage devices 210 is now redundant, and may be erased, in some embodiments. - In some embodiments, a degradation in a physical parameter of a storage device 210-1 of the first group of
storage devices 210 is detected. Detection of the degradation includes determining that the physical parameter of the at least a storage device is below a second threshold value. The physical parameter may be endurance, performance, update latency, access time, and the like. At least a portion of data stored on the storage device 210-1 is duplicated and stored on the storage device 210-2 of the first group ofstorage devices 210. Once the data is stored on the second storage device 210-2, the duplicated data is removed from the first storage device 210-1 and the first storage device 210-1 becomes associated with the second group ofstorage devices 220. - The principles herein are implemented as hardware, firmware, software or any combination thereof. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage unit or computer readable medium. The application program may be uploaded to, and executed by, a machine including any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as a processing unit (“CPU”), a memory, and input/output interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such computer or processor is explicitly shown. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit and/or display unit.
- All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the disclosure and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
Claims (16)
1. A method for controlling a multi-tiered storage device (MTSD), the method comprising:
receiving a block of data using a controller of the MTSD, the MTSD comprising a first storage comprising one or more storage devices, and a second storage comprising one or more storage devices, wherein each storage device of the first storage has a higher write endurance than each storage device of the second storage;
writing, by the controller, the received block of data to a first storage device of the first storage;
assigning a timestamp respective of the received block of data; and
writing, by the controller, the received block of data to a second storage device of the second storage, in response to determining that a time elapsed since the timestamp is above a first threshold value.
2. The method of claim 1 , further comprising:
erasing the received block of data from the first storage device of the first storage, in response to determining that the received block of data was written to the second storage device of the second storage.
3. The method of claim 1 , wherein a storage device of the first storage is one from among a solid-state drive (SSD), and a hard-disk drive (HDD).
4. The method of claim 1 , further comprising:
detecting a degradation in a physical parameter of the first storage device of the first storage; and
associating the first storage device with the second storage.
5. The method of claim 4 , further comprising:
duplicating at least a portion of data stored on the first storage device of the first storage to another storage device of the first storage; and
removing the duplicated data from the first storage device of the first storage.
6. The method of claim 4 , wherein detection of the degradation in the physical parameter comprises:
determining that the physical parameter of the first storage device is below a second threshold value, the physical parameter comprises at least one of endurance, performance, update latency and access time.
7. A system for controlling a multi-tiered storage device (MTSD), the system comprising:
a processing unit (PU);
an input/output (I/O) interface communicatively coupled to the MTSD, the MTSD comprises a first storage comprising one or more storage devices, and a second storage comprising one or more storage devices, each storage device of the first storage has a higher write endurance than each storage device of the second storage; and
a memory communicatively coupled to the PU, the memory storing instructions that when executed by the PU configure the system to:
receive a block of data;
write the received block of data to a first storage device of the first storage;
assign a timestamp respective of the received block of data; and
write the received block of data to a second storage device of the second storage, upon determination that a time elapsed since the timestamp is above a first threshold value.
8. The system of claim 7 , wherein the memory further stores instructions that when executed by the PU configure the system to erase the received block of data from the first storage device of the first storage, in response to determining that the received block of data was written to the second storage device of the second storage.
9. The system of claim 7 , wherein the first storage device is one from among a solid-state drive (SSD), and a hard-disk drive (HDD).
10. The system of claim 7 , wherein the memory further stores instructions that when executed by the PU configure the system to:
detect a degradation in a physical parameter of the first storage device of the first storage; and
associate the first storage device with the second storage.
11. The system of claim 10 , wherein the memory further stores instructions that when executed by the PU configure the system to:
duplicate at least a portion of data stored on the first storage device of the first storage to another storage device of the first storage; and
remove the duplicated data from the first storage device.
12. The system of claim 10 , wherein the memory further stores instructions that when executed by the PU to detect the degradation in the physical parameter further configure the system to determine that the physical parameter of the first storage device is below a second threshold value, the physical parameter includes at least one of endurance, performance, update latency and access time.
13. A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute the method according to claim 1 .
14. A system comprising:
a controller; and
a memory that stores information arranging storage devices in a multi-tiered storage device (MTSD) into at least two groups including a first group of storage devices and a second group of storage devices, the storage devices in the first group of storage devices have a write endurance that is higher than a write endurance of the storage devices of the second group of storage devices,
wherein in response to the write endurance of a first storage device of the first group of storage devices falling below a threshold, the controller re-assigns the first storage device to the second group of storage devices.
15. The system according to claim 14 , wherein in response to the write endurance of a first storage device of the first group of storage devices falling below a threshold, the controller further causes data on the first storage device to be written to a second storage device of the first group of storage devices.
16. The system according to claim 14 , wherein the system is connected to the MTSD over a network.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/746,878 US20160034202A1 (en) | 2014-07-30 | 2015-06-23 | Multi-tiered storage device system and method thereof |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462030700P | 2014-07-30 | 2014-07-30 | |
US201462085568P | 2014-11-30 | 2014-11-30 | |
US201462096908P | 2014-12-26 | 2014-12-26 | |
US201562119412P | 2015-02-23 | 2015-02-23 | |
US201562126920P | 2015-03-02 | 2015-03-02 | |
US14/746,878 US20160034202A1 (en) | 2014-07-30 | 2015-06-23 | Multi-tiered storage device system and method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
US20160034202A1 true US20160034202A1 (en) | 2016-02-04 |
Family
ID=55180065
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/698,121 Active 2035-11-23 US9658782B2 (en) | 2014-07-30 | 2015-04-28 | Scalable data using RDMA and MMIO |
US14/724,971 Active 2036-01-29 US10976932B2 (en) | 2014-07-30 | 2015-05-29 | Method for providing a client device access to a plurality of remote storage devices |
US14/726,919 Active 2036-05-04 US9971519B2 (en) | 2014-07-30 | 2015-06-01 | System and method for efficient access for remote storage devices |
US14/746,878 Abandoned US20160034202A1 (en) | 2014-07-30 | 2015-06-23 | Multi-tiered storage device system and method thereof |
US15/975,379 Active US10788992B2 (en) | 2014-07-30 | 2018-05-09 | System and method for efficient access for remote storage devices |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/698,121 Active 2035-11-23 US9658782B2 (en) | 2014-07-30 | 2015-04-28 | Scalable data using RDMA and MMIO |
US14/724,971 Active 2036-01-29 US10976932B2 (en) | 2014-07-30 | 2015-05-29 | Method for providing a client device access to a plurality of remote storage devices |
US14/726,919 Active 2036-05-04 US9971519B2 (en) | 2014-07-30 | 2015-06-01 | System and method for efficient access for remote storage devices |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/975,379 Active US10788992B2 (en) | 2014-07-30 | 2018-05-09 | System and method for efficient access for remote storage devices |
Country Status (1)
Country | Link |
---|---|
US (5) | US9658782B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109901787A (en) * | 2017-12-08 | 2019-06-18 | 比亚迪股份有限公司 | The storage of energy-storage battery parameter, read method, device and equipment in energy-storage system |
CN109903792A (en) * | 2017-12-08 | 2019-06-18 | 比亚迪股份有限公司 | The storage of energy-storage battery parameter, read method, device and equipment in energy-storage system |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10936200B2 (en) | 2014-07-30 | 2021-03-02 | Excelero Storage Ltd. | System and method for improved RDMA techniques for multi-host network interface controllers |
US10237347B2 (en) * | 2015-06-08 | 2019-03-19 | Excelero Storage Ltd. | System and method for providing a client device seamless access to a plurality of remote storage devices presented as a virtual device |
US10979503B2 (en) | 2014-07-30 | 2021-04-13 | Excelero Storage Ltd. | System and method for improved storage access in multi core system |
US9112890B1 (en) | 2014-08-20 | 2015-08-18 | E8 Storage Systems Ltd. | Distributed storage over shared multi-queued storage device |
US9274720B1 (en) | 2014-09-15 | 2016-03-01 | E8 Storage Systems Ltd. | Distributed RAID over shared multi-queued storage devices |
US9712619B2 (en) | 2014-11-04 | 2017-07-18 | Pavilion Data Systems, Inc. | Virtual non-volatile memory express drive |
US9565269B2 (en) * | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
US9519666B2 (en) * | 2014-11-27 | 2016-12-13 | E8 Storage Systems Ltd. | Snapshots and thin-provisioning in distributed storage over shared storage devices |
US9529542B2 (en) | 2015-04-14 | 2016-12-27 | E8 Storage Systems Ltd. | Lockless distributed redundant storage and NVRAM caching of compressed data in a highly-distributed shared topology with direct memory access capable interconnect |
US9525737B2 (en) | 2015-04-14 | 2016-12-20 | E8 Storage Systems Ltd. | Lockless distributed redundant storage and NVRAM cache in a highly-distributed shared topology with direct memory access capable interconnect |
US10496626B2 (en) | 2015-06-11 | 2019-12-03 | EB Storage Systems Ltd. | Deduplication in a highly-distributed shared topology with direct-memory-access capable interconnect |
US20180314610A1 (en) * | 2016-02-19 | 2018-11-01 | Hewlett-Packard Development Company, L.P. | Remote access device diagnostics |
US10055144B1 (en) * | 2016-03-30 | 2018-08-21 | Amazon Technologies, Inc. | Configurable storage drive |
US9842084B2 (en) | 2016-04-05 | 2017-12-12 | E8 Storage Systems Ltd. | Write cache and write-hole recovery in distributed raid over shared multi-queue storage devices |
US10754988B2 (en) * | 2016-08-30 | 2020-08-25 | Winbond Electronics Corporation | Anti-rollback version upgrade in secured memory chip |
US10891253B2 (en) * | 2016-09-08 | 2021-01-12 | Microsoft Technology Licensing, Llc | Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks |
US20180089044A1 (en) * | 2016-09-27 | 2018-03-29 | Francesc Guim Bernat | Technologies for providing network interface support for remote memory and storage failover protection |
US10031872B1 (en) | 2017-01-23 | 2018-07-24 | E8 Storage Systems Ltd. | Storage in multi-queue storage devices using queue multiplexing and access control |
US10685010B2 (en) | 2017-09-11 | 2020-06-16 | Amazon Technologies, Inc. | Shared volumes in distributed RAID over shared multi-queue storage devices |
CN107592361B (en) * | 2017-09-20 | 2020-05-29 | 郑州云海信息技术有限公司 | Data transmission method, device and equipment based on dual IB network |
US10503590B2 (en) | 2017-09-21 | 2019-12-10 | International Business Machines Corporation | Storage array comprising a host-offloaded storage function |
US20190102287A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Remote persistent memory access device |
US10452295B1 (en) * | 2017-10-06 | 2019-10-22 | EMC IP Holding Company LLC | Data routing in information processing system utilizing persistent memory |
US10789179B1 (en) | 2017-10-06 | 2020-09-29 | EMC IP Holding Company LLC | Decentralized access management in information processing system utilizing persistent memory |
CN109729110B (en) * | 2017-10-27 | 2022-02-11 | 伊姆西Ip控股有限责任公司 | Method, apparatus and computer readable medium for managing dedicated processing resources |
EP3531666B1 (en) | 2017-12-26 | 2021-09-01 | Huawei Technologies Co., Ltd. | Method for managing storage devices in a storage system, and storage system |
CN110199270B (en) | 2017-12-26 | 2022-09-02 | 华为技术有限公司 | Management method and device for storage equipment in storage system |
CN110235098B (en) | 2017-12-26 | 2021-06-22 | 华为技术有限公司 | Storage system access method and device |
KR102583255B1 (en) | 2018-11-05 | 2023-09-26 | 삼성전자주식회사 | Storage device adaptively supporting plurality of protocols |
US11704059B2 (en) | 2020-02-07 | 2023-07-18 | Samsung Electronics Co., Ltd. | Remote direct attached multiple storage function storage device |
US20200210359A1 (en) * | 2020-03-10 | 2020-07-02 | Intel Corporation | Dynamic interrupt provisioning |
JP2022048716A (en) | 2020-09-15 | 2022-03-28 | キオクシア株式会社 | Storage system |
US11503140B2 (en) | 2020-12-11 | 2022-11-15 | Western Digital Technologies, Inc. | Packet processing by programmable network interface |
JP2022158591A (en) * | 2021-04-02 | 2022-10-17 | 株式会社デンソー | Map information output device, automatic driving control system, map information output system, and map information output method |
US11922228B2 (en) | 2021-06-17 | 2024-03-05 | International Business Machines Corporation | Host request pacing to balance resources and throughput |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100169541A1 (en) * | 2008-12-30 | 2010-07-01 | Guy Freikorn | Method and apparatus for retroactive adaptation of data location |
US20100325352A1 (en) * | 2009-06-19 | 2010-12-23 | Ocz Technology Group, Inc. | Hierarchically structured mass storage device and method |
US20130297869A1 (en) * | 2012-05-01 | 2013-11-07 | Enmotus Inc. | Storage system with load balancing mechanism and method of operation thereof |
US20150160858A1 (en) * | 2013-08-26 | 2015-06-11 | Hitachi, Ltd. | Storage apparatus and tier control method |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5745671A (en) | 1995-02-28 | 1998-04-28 | International Business Machines Corporation | Data storage system with localized XOR function |
US5717691A (en) | 1995-10-30 | 1998-02-10 | Nec Usa, Inc. | Multimedia network interface for asynchronous transfer mode communication system |
US6108812A (en) | 1996-06-20 | 2000-08-22 | Lsi Logic Corporation | Target device XOR engine |
US5889934A (en) | 1997-02-24 | 1999-03-30 | Data General Corporation | Data validation system for a group of data storage disks |
US6839803B1 (en) | 1999-10-27 | 2005-01-04 | Shutterfly, Inc. | Multi-tier data storage system |
US7403542B1 (en) | 2002-07-19 | 2008-07-22 | Qlogic, Corporation | Method and system for processing network data packets |
EP1546930B1 (en) | 2002-09-18 | 2015-10-21 | IBM International Group BV | Programmable streaming data processor for database appliance having multiple processing unit groups |
US7539780B2 (en) | 2003-12-01 | 2009-05-26 | International Business Machines Corporation | Asynchronous completion notification for an RDMA system |
US20050129039A1 (en) | 2003-12-11 | 2005-06-16 | International Business Machines Corporation | RDMA network interface controller with cut-through implementation for aligned DDP segments |
JP2006079380A (en) | 2004-09-10 | 2006-03-23 | Hitachi Ltd | Disk array device |
US7853957B2 (en) * | 2005-04-15 | 2010-12-14 | Intel Corporation | Doorbell mechanism using protection domains |
US8037154B2 (en) | 2005-05-19 | 2011-10-11 | International Business Machines Corporation | Asynchronous dual-queue interface for use in network acceleration architecture |
US7590768B2 (en) | 2005-09-23 | 2009-09-15 | Joseph Gormley | Control and interconnection system |
US7710968B2 (en) | 2006-05-11 | 2010-05-04 | Intel Corporation | Techniques to generate network protocol units |
US7822921B2 (en) | 2006-10-31 | 2010-10-26 | Netapp, Inc. | System and method for optimizing write operations in storage systems |
US8233380B2 (en) | 2006-11-06 | 2012-07-31 | Hewlett-Packard Development Company, L.P. | RDMA QP simplex switchless connection |
US8103785B2 (en) | 2007-12-03 | 2012-01-24 | Seafire Micros, Inc. | Network acceleration techniques |
US8407448B1 (en) * | 2008-05-06 | 2013-03-26 | Emc Corporation | Shared storage I/O elimination through mapping client integration into a hypervisor |
US8775718B2 (en) | 2008-05-23 | 2014-07-08 | Netapp, Inc. | Use of RDMA to access non-volatile solid-state memory in a network storage system |
US8266099B2 (en) | 2008-05-29 | 2012-09-11 | Vmware, Inc. | Offloading storage operations to storage hardware using a third party server |
US8122155B1 (en) | 2009-06-23 | 2012-02-21 | Chelsio Communications, Inc. | RDMA write completion semantics |
US8307271B1 (en) | 2009-09-17 | 2012-11-06 | Emc Corporation | Fast verification of data block cycle redundancy checks |
US8259582B2 (en) | 2009-11-13 | 2012-09-04 | Intel Corporation | Method and apparatus to manage per flow state |
US8423717B2 (en) | 2009-12-02 | 2013-04-16 | Honeywell International Inc. | Multi-core processing cache image management |
US8265095B2 (en) * | 2009-12-02 | 2012-09-11 | International Business Machines Corporation | Resource management finite state machine for handling resource management tasks separate from a protocol finite state machine |
US8433848B1 (en) | 2010-03-30 | 2013-04-30 | Emc Corporation | Analysis tool for a multi-tier storage environment |
US9331963B2 (en) | 2010-09-24 | 2016-05-03 | Oracle International Corporation | Wireless host I/O using virtualized I/O controllers |
US8713362B2 (en) | 2010-12-01 | 2014-04-29 | International Business Machines Corporation | Obviation of recovery of data store consistency for application I/O errors |
US8910031B1 (en) | 2011-03-29 | 2014-12-09 | Emc Corporation | DIF-CRC based fast hashing |
US8832216B2 (en) | 2011-08-31 | 2014-09-09 | Oracle International Corporation | Method and system for conditional remote direct memory access write |
US9405725B2 (en) | 2011-09-29 | 2016-08-02 | Intel Corporation | Writing message to controller memory space |
EP2771797A4 (en) | 2011-10-28 | 2015-08-05 | Univ California | Multiple-core computer processor |
US9467511B2 (en) | 2012-01-17 | 2016-10-11 | Intel Corporation | Techniques for use of vendor defined messages to execute a command to access a storage device |
US8706962B2 (en) | 2012-01-27 | 2014-04-22 | International Business Machines Corporation | Multi-tier storage system configuration adviser |
US9507752B2 (en) | 2012-09-27 | 2016-11-29 | Intel Corporation | Methods, apparatus and systems for facilitating RDMA operations with reduced doorbell rings |
US9639457B1 (en) | 2012-12-20 | 2017-05-02 | Datadirect Networks, Inc. | Data storage system and method for data migration between high-performance computing architectures and data storage devices using storage controller with distributed XOR capability |
US8908704B2 (en) | 2013-01-31 | 2014-12-09 | Mellanox Technologies Ltd. | Switch with dual-function management port |
US9483191B2 (en) | 2013-03-15 | 2016-11-01 | Arris Enterprises, Inc. | Multi-tier storage for delivery of services |
US9311230B2 (en) | 2013-04-23 | 2016-04-12 | Globalfoundries Inc. | Local direct storage class memory access |
US9558146B2 (en) | 2013-07-18 | 2017-01-31 | Intel Corporation | IWARP RDMA read extensions |
US9241044B2 (en) * | 2013-08-28 | 2016-01-19 | Hola Networks, Ltd. | System and method for improving internet communication by using intermediate nodes |
US9798655B2 (en) | 2013-09-20 | 2017-10-24 | Oracle International Corporation | Managing a cache on storage devices supporting compression |
US9462308B2 (en) * | 2013-10-17 | 2016-10-04 | Crestron Electronics Inc. | Audiovisual distribution network |
US9294567B2 (en) | 2014-05-02 | 2016-03-22 | Cavium, Inc. | Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller |
US10275310B2 (en) | 2015-03-09 | 2019-04-30 | Western Digital Technologies, Inc. | Updating exclusive-or parity data |
US9985904B2 (en) | 2015-12-29 | 2018-05-29 | Amazon Technolgies, Inc. | Reliable, out-of-order transmission of packets |
US10142231B2 (en) | 2016-03-31 | 2018-11-27 | Intel Corporation | Technologies for network I/O access |
US10585818B2 (en) | 2017-04-05 | 2020-03-10 | International Business Machines Corporation | Low overhead exclusive control for shared memory objects |
-
2015
- 2015-04-28 US US14/698,121 patent/US9658782B2/en active Active
- 2015-05-29 US US14/724,971 patent/US10976932B2/en active Active
- 2015-06-01 US US14/726,919 patent/US9971519B2/en active Active
- 2015-06-23 US US14/746,878 patent/US20160034202A1/en not_active Abandoned
-
2018
- 2018-05-09 US US15/975,379 patent/US10788992B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100169541A1 (en) * | 2008-12-30 | 2010-07-01 | Guy Freikorn | Method and apparatus for retroactive adaptation of data location |
US20100325352A1 (en) * | 2009-06-19 | 2010-12-23 | Ocz Technology Group, Inc. | Hierarchically structured mass storage device and method |
US20130297869A1 (en) * | 2012-05-01 | 2013-11-07 | Enmotus Inc. | Storage system with load balancing mechanism and method of operation thereof |
US20150160858A1 (en) * | 2013-08-26 | 2015-06-11 | Hitachi, Ltd. | Storage apparatus and tier control method |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109901787A (en) * | 2017-12-08 | 2019-06-18 | 比亚迪股份有限公司 | The storage of energy-storage battery parameter, read method, device and equipment in energy-storage system |
CN109903792A (en) * | 2017-12-08 | 2019-06-18 | 比亚迪股份有限公司 | The storage of energy-storage battery parameter, read method, device and equipment in energy-storage system |
Also Published As
Publication number | Publication date |
---|---|
US9971519B2 (en) | 2018-05-15 |
US20180260139A1 (en) | 2018-09-13 |
US10976932B2 (en) | 2021-04-13 |
US10788992B2 (en) | 2020-09-29 |
US20160036913A1 (en) | 2016-02-04 |
US20160034419A1 (en) | 2016-02-04 |
US9658782B2 (en) | 2017-05-23 |
US20160034418A1 (en) | 2016-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160034202A1 (en) | Multi-tiered storage device system and method thereof | |
TWI632457B (en) | Method of wear leveling for data storage device | |
US9996297B2 (en) | Hot-cold data separation method in flash translation layer | |
US20180373428A1 (en) | Methods and systems for managing data migration in solid state non-volatile memory | |
US8621328B2 (en) | Wear-focusing of non-volatile memories for improved endurance | |
US9513822B2 (en) | Unmap storage space | |
US10672452B2 (en) | Temperature informed memory refresh | |
US10877898B2 (en) | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements | |
US20130326130A1 (en) | Techniques for increasing a lifetime of blocks of memory | |
US8495281B2 (en) | Intra-block memory wear leveling | |
TW201617840A (en) | Data storage device and operating method thereof | |
TWI608350B (en) | Memory device and control unit thereof, and data movement method for memory device | |
TWI720246B (en) | Data storage device and operating method therefor | |
JP6102515B2 (en) | Information processing apparatus, control circuit, control program, and control method | |
CN114761931A (en) | Logical to physical translation techniques in limited RAM systems | |
JP2022553791A (en) | Dynamic Overprovisioning Allocation of Purpose Blocks | |
CN112673356B (en) | Fast non-volatile storage recovery techniques | |
US10459630B2 (en) | Memory management method, memory storage device and memory controlling circuit unit | |
US9785374B2 (en) | Storage device management in computing systems | |
US11733909B2 (en) | Secure-erase prediction for data storage devices | |
US9880930B2 (en) | Method for operating controller and method for operating device including the same | |
CN105117168A (en) | Information processing method and electronic equipment | |
CN105868046B (en) | The method of management, write-in and loading firmware code in storage device | |
TW201732837A (en) | Memory device and control unit thereof, and data movement method for memory device | |
TWI632458B (en) | Memory device and control unit thereof, and data movement method for memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: EXCELERO, ISRAEL Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ROMEM, YANIV;MANN, OMRI;OSHRI, OFER;REEL/FRAME:035880/0275 Effective date: 20150609 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: NVIDIA CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EXCELERO STORAGE LTD.;REEL/FRAME:059249/0950 Effective date: 20220301 |