US20160034202A1 - Multi-tiered storage device system and method thereof - Google Patents

Multi-tiered storage device system and method thereof Download PDF

Info

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
Application number
US14/746,878
Inventor
Yaniv Romem
Omri Mann
Ofer Oshri
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Excelero Storage Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Excelero Storage Ltd filed Critical Excelero Storage Ltd
Priority to US14/746,878 priority Critical patent/US20160034202A1/en
Assigned to EXCELERO reassignment EXCELERO ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MANN, OMRI, OSHRI, OFER, ROMEM, YANIV
Publication of US20160034202A1 publication Critical patent/US20160034202A1/en
Assigned to NVIDIA CORPORATION reassignment NVIDIA CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: EXCELERO STORAGE LTD.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/06Answer-back mechanisms or circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details 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

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • 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.
  • BACKGROUND
  • 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.
  • SUMMARY
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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.
  • DETAILED DESCRIPTION
  • 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 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. 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.
  • In some exemplary embodiments, the MTSD 200 is coupled via the bus 105 to the CPU. In other exemplary embodiments, 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.
  • 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. For example, 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. In some embodiments, the first group of storage devices 210 may include solid state drives (SSDs). In certain embodiments, the second group of storage 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 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. In S310 a block of data is received by a controller 230 to be written to the MTSD 200. In S320 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. 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 the MTSD 200 and may vary depending on a variety of parameters, such as total free memory in the MTSD 200, and the like. In 5360 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.
  • 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. 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)

What is claimed is:
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.
US14/746,878 2014-07-30 2015-06-23 Multi-tiered storage device system and method thereof Abandoned US20160034202A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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