WO2020000480A1 - 数据存储方法及数据存储装置 - Google Patents
数据存储方法及数据存储装置 Download PDFInfo
- Publication number
- WO2020000480A1 WO2020000480A1 PCT/CN2018/093915 CN2018093915W WO2020000480A1 WO 2020000480 A1 WO2020000480 A1 WO 2020000480A1 CN 2018093915 W CN2018093915 W CN 2018093915W WO 2020000480 A1 WO2020000480 A1 WO 2020000480A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- physical block
- size
- ssd
- target
- target physical
- Prior art date
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
Definitions
- the present application relates to the field of chip technology, and in particular, to a data storage method and a data storage device.
- SSDs solid state disks
- the writing process of the object is as follows: the entire object can be put together (put), or the entire object can be written in succession in an append method.
- the minimum read / write unit of the SSD is a page
- the minimum erase unit of the SSD is a block. In other words, when there are too many objects written in the SSD, the SSD needs to be continuously garbage collected. Therefore, when writing objects to the SSD, some blocks need to be erased first, and then written. The object.
- the present application discloses a data storage method and a data storage device, which can improve the service life of the data storage device.
- an embodiment of the present application provides a data storage method, including:
- the object to be stored includes data to be stored in a solid-state drive SSD; storing the object in a target physical block according to attribute information of the object; wherein the target physical block is The one or more physical blocks in the SSD corresponding to the attribute information of the object.
- the target physical block may be a physical block corresponding to the attribute information of the object in the SSD, or the target physical block may also be a combination of multiple physical blocks corresponding to the attribute information of the object in the SSD.
- the number of physical blocks included in the target physical block is not limited in the embodiment of the present application.
- the attribute information of the object includes one or more of a size of the object and a stream attribute of the object.
- the size of the object may represent the size of the storage space occupied by the object, and the stream attributes of the object may include the stream identifier (ID) of the object, and the stream attributes of the object may also include other stream attributes of the object Wait, the embodiment of the present application does not limit the stream attributes of the object.
- the attribute information of the object may include the size of the object; or, the attribute information of the object may include the flow attribute of the object; or, the attribute information of the object includes the size of the object and the stream attribute of the object.
- the storing the object into a target physical block according to the attribute information of the object includes: determining a first physical block set according to a size of the object; and according to a flow of the object.
- the attribute determines the target physical block from the first physical block set; and stores the object in the target physical block.
- the first physical block set may include one physical block or multiple physical blocks, which is not limited in the embodiment of the present application.
- a target physical block may also be determined from the first physical block set by using a stream attribute of the object, so that the object is stored in the target physical block.
- the storing the object into the target physical block according to the attribute information of the object includes: determining a second physical block set according to the stream attribute of the object; and according to the object's The size determines the target physical block from the second set of physical blocks; and stores the object in the target physical block.
- the second physical block set may also include one physical block, and may further include multiple physical blocks, which is not limited in the embodiment of the present application.
- the object when the size of the object is greater than or equal to one third of the size of the physical block, the object belongs to a large object; or when the size of the object is less than the physical block In the case of a third of the size, the object belongs to a small object.
- an object whose size is greater than or equal to one third of the size of a physical block is regarded as a large object.
- an object whose size is greater than or equal to one third of the size of a physical block is stored Entering a physical block can significantly increase the benefits of write amplification, thereby increasing the service life of the SSD.
- the storing the object into the target physical block according to the attribute information of the object includes: where the object belongs to a large object and the number of reference physical blocks does not exceed the number threshold In the case, the object is stored in the target physical block according to the size of the object and the flow attribute of the object; wherein the reference physical block includes the target physical block, and the reference physical block is A physical block of a partial page is written in the SSD.
- the reference physical block can also be understood as a physical block in which only a part of pages are compiled in the SSD.
- the storage operation may be performed according to the size of the object and the stream attribute, but also the storage operation may be performed according to the number of reference physical blocks, thereby further improving the service life of the SSD.
- the method further includes: when the object belongs to a large object, and the number of the reference physical blocks exceeds the number threshold, determining a set of physical blocks for storing the large object as A third physical block set; and if there is no physical block with the same stream attribute of the object in the third physical block set, storing the object to the target physical block according to the size of the object Medium; wherein the third physical block set includes the target physical block.
- the method before the storing the object in a target physical block according to the attribute information of the object, the method further includes: sending instruction information to a storage system connected to the SSD; wherein The indication information includes one or more of the number of reference active objects in the SSD, the number of reference streams in the SSD, and the size of the physical block in the SSD; wherein the number of reference active objects It is used to indicate the number of concurrent objects, the number of reference streams is used to indicate the shunt level, the size of the physical block is used to indicate the size of the concurrent object, and the size of the physical block includes the size of a physical block in the SSD or The size of multiple physical blocks.
- the storage system can be used to separately plan the number of concurrent objects and the shunt level according to the above information And the size of the concurrent objects. Effectively improve the input / output (IO) efficiency of the SSD, and improve the overall performance of the SSD.
- IO input / output
- an embodiment of the present application provides a solid state hard disk, including:
- An acquisition unit configured to acquire an object to be stored, where the object to be stored includes data to be stored in the solid-state hard disk SSD; and a storage unit, configured to store the object to a target physics according to attribute information of the object Block; wherein the target physical block is one or more physical blocks in the SSD corresponding to the attribute information of the object.
- the attribute information of the object includes one or more of a size of the object and a stream attribute of the object.
- the storage unit includes: a first determining subunit, configured to determine a first physical block set according to a size of the object; and a second determining subunit, configured to determine a flow according to the object.
- the attribute determines the target physical block from the first physical block set; a storage subunit is configured to store the object in the target physical block.
- the storage unit includes: a third determining subunit, configured to determine a second physical block set according to a stream attribute of the object; and a fourth determining subunit, configured to determine the second physical block set according to the object.
- the size determines the target physical block from the second set of physical blocks; a storage subunit is configured to store the object in the target physical block.
- the object when the size of the object is greater than or equal to one third of the size of the physical block, the object belongs to a large object; or when the size of the object is less than the physical block In the case of a third of the size, the object belongs to a small object.
- the storage unit is specifically configured to, when the object belongs to a large object and the number of reference physical blocks does not exceed the number threshold, according to the size of the object and the object's
- the stream attribute stores the object into the target physical block; wherein the reference physical block includes the target physical block, and the reference physical block is a physical block in which a partial page is written in the SSD.
- the storage unit is specifically configured to determine a physics for storing a large object when the object belongs to a large object and the number of the reference physical blocks exceeds the number threshold.
- the block set is used as a third physical block set; and if there is no physical block with the same stream attribute of the object in the third physical block set, the object is stored to the object according to the size of the object A target physical block; wherein the third physical block set includes the target physical block.
- the solid state hard disk further includes: a sending unit configured to send instruction information to a storage system connected to the SSD; wherein the instruction information includes: a reference active object in the SSD One or more of the number, the number of reference streams in the SSD, and the size of the physical block in the SSD; wherein the number of reference active objects is used to indicate the number of concurrent objects, and the number of reference streams is used to Indicates a shunt level, and the size of the physical block is used to indicate a size of a concurrent object, and the size of the physical block includes a size of one physical block or a plurality of physical blocks in the SSD.
- the data storage device described in this application includes an SSD in the embodiment of this application.
- an embodiment of the present application further provides a controller, including:
- An acquisition unit configured to acquire an object to be stored, where the object to be stored includes data to be stored in a data storage device connected to the controller; and a storage unit, configured to store the object according to attribute information of the object
- the object is stored in a target physical block; wherein the target physical block is one or more physical blocks corresponding to the attribute information of the object in the data storage device.
- the attribute information of the object includes one or more of a size of the object and a stream attribute of the object.
- the storage unit includes: a first determining subunit, configured to determine a first physical block set according to a size of the object; and a second determining subunit, configured to determine a flow according to the object.
- the attribute determines the target physical block from the first physical block set; a storage subunit is configured to store the object in the target physical block.
- the storage unit includes: a third determining subunit, configured to determine a second physical block set according to a stream attribute of the object; and a fourth determining subunit, configured to determine the second physical block set according to the object.
- the size determines the target physical block from the second set of physical blocks; a storage subunit is configured to store the object in the target physical block.
- the object when the size of the object is greater than or equal to one third of the size of the physical block, the object belongs to a large object; or when the size of the object is less than the physical block In the case of a third of the size, the object belongs to a small object.
- the storage unit is specifically configured to, when the object belongs to a large object and the number of reference physical blocks does not exceed the number threshold, according to the size of the object and the object's
- the stream attribute stores the object into the target physical block; wherein the reference physical block includes the target physical block, and the reference physical block is a physical block in which a partial page is written in the data storage device.
- the storage unit is specifically configured to determine a physics for storing a large object when the object belongs to a large object and the number of the reference physical blocks exceeds the number threshold.
- the block set is used as a third physical block set; and if there is no physical block with the same stream attribute of the object in the third physical block set, the object is stored to the object according to the size of the object A target physical block; wherein the third physical block set includes the target physical block.
- the data storage device in the embodiment of the present application may include an SSD and the like, and the embodiment of the present application does not limit the data storage device uniquely.
- an embodiment of the present application further provides a solid-state hard disk SSD including a control unit and a storage unit; wherein the storage unit is used to store an object; and the control unit is used to call and store the storage unit In the program instructions to perform the corresponding method as described in the first aspect.
- control unit may be configured to obtain an object to be stored, and store the object into a target physical block according to attribute information of the object; wherein the object to be stored includes data to be stored in an SSD; And the target physical block is one or more physical blocks corresponding to the attribute information of the object in the SSD.
- an embodiment of the present application provides a computer-readable storage medium, where the computer-readable storage medium stores instructions, and when the instructions are run on a computer, the computer is caused to execute the above-mentioned first aspect.
- an embodiment of the present invention provides a computer program.
- the computer program includes instructions.
- the computer program can execute the data storage method provided by the first aspect. Process.
- FIG. 1 is a schematic structural diagram of an SSD according to an embodiment of the present application.
- FIG. 2 is a schematic flowchart of a data storage method according to an embodiment of the present application.
- FIG. 3 is a schematic diagram of a scenario of a data storage method provided by an embodiment of the present application.
- FIG. 4 is a schematic diagram of another data storage method provided by an embodiment of the present application.
- FIG. 5 is a schematic structural diagram of another SSD according to an embodiment of the present application.
- FIG. 6 is a schematic structural diagram of a storage unit according to an embodiment of the present application.
- FIG. 7 is a schematic structural diagram of another storage unit according to an embodiment of the present application.
- FIG. 8 is a schematic structural diagram of still another SSD provided by an embodiment of the present application.
- FIG. 1 is a schematic structural diagram of a simplified solid state hard disk including a control unit and a storage unit according to an embodiment of the present application.
- the solid state hard disk may include an SSD controller and a cache array, that is, a flash memory. Array.
- the SSD controller and the flash array are connected to each other through a line.
- the SSD controller is a core device of the SSD, and can be used to reasonably allocate data load on each flash array, and the SSD controller can also be used for data transfer, connecting the flash array and an external serial interface.
- the external serial interface may also be referred to as a host interface.
- the flash array can be used to store data and computer program instructions. As in the embodiment of the present application, the flash array can be used to store objects. Specifically, the flash array may include multiple flash memory particles, and each flash memory particle may include multiple physical blocks. Optionally, the number of physical blocks contained in each flash memory particle is not limited in the embodiment of the present application. For example, the physical blocks contained in the flash memory particles can be set by the manufacturer.
- the writing unit of the flash particles is a page, and the erasing unit is a block. It can be understood that, in the embodiment of the present application, the erasing unit or block of the flash particles may also be called a physical block.
- the SSD controller may implement the data storage method provided by the embodiments of the present application through software, hardware, or by executing corresponding software through hardware.
- the SSD controller may further include a hardware chip.
- the hardware chip may be an application-specific integrated circuit (ASIC), or the hardware chip may be a field programmable logic gate array (FPGA). ) Wait, this embodiment is not limited.
- the solid state hard disk shown in FIG. 1 may further include a cache, for example, the cache may include a dynamic random access memory (dynamic random access memory, DRAM).
- DRAM dynamic random access memory
- a flash array and a DRAM having a storage function are regarded as a storage unit of a solid state hard disk
- an SSD controller having a processing function is regarded as a control unit of the solid state hard disk.
- the solid state hard disk includes a control unit 101 and a storage unit 102.
- the storage unit may also be referred to as a memory, a storage device, a storage device, and the like.
- the control unit may also be called a controller, a control single board, a control module, a control device, and so on.
- the embodiment of the present application provides a data storage method, which can effectively increase the service life of the SSD.
- FIG. 2 is a schematic flowchart of a data storage method according to an embodiment of the present application.
- the data storage method may be applied to the SSD shown in FIG. 1.
- the data storage method includes:
- the object to be stored includes data to be stored in the SSD, that is, the object includes data to be stored in the SSD.
- the target physical block may be a single physical block or a logical block formed by combining multiple physical blocks.
- the embodiment of the present application does not limit the specific storage of the object in several physical blocks, that is, the number of physical blocks contained in the target physical block is not limited in the embodiment of the present application.
- an object with the same attribute information can be stored in the target physical block, that is, an object with the same attribute information is stored in the same physical block or multiple physical blocks.
- the attribute information of the object includes one or more of a size of the object and a stream attribute of the object.
- the SSD may also determine the target physical block.
- a method for determining the target physical block for example, the SSD can find out whether there is a physical block corresponding to the attribute information of the object in the flash memory particle according to the attribute information of the object, and the SSD finds that a physical block corresponding to the attribute information of the object exists.
- the cases where the SSD does not find a physical block corresponding to the attribute information of the object are as follows:
- the following will take the attribute information of the object including the size of the object and the stream ID of the object as examples for illustration.
- Case 1 The SSD finds a physical block corresponding to the attribute information of the object according to the attribute information of the object
- the SSD can find whether there is a physical block corresponding to the size of the object and the flow ID of the object according to the size of the object and the flow ID.
- a physical block corresponding to the size of the object and a stream ID of the object is determined as a target physical block, and the object is further stored in the target physical block.
- the size of the object may include a small object and a large object.
- the size of the object is greater than or equal to one third of the size of the physical block, the object is a large object; or if the size of the object is less than one third of the size of the physical block, the above Object belongs to small object.
- the physical block described above represents a single physical block. If the size of an object is close to the size of a single physical block, the write amplification of the SSD will be small when the object is written to the SSD. If the size of the object is close to the sum of multiple physical blocks, the write amplification of the SSD will be small. Therefore, in the embodiment of the present application, by distinguishing between large objects and small objects, the write amplification of the SSD can be further reduced, and the service life of the SSD can be increased.
- the SSD may also store the object according to the method described above. And, in a case where the attribute information of the object includes the stream ID of the object, the SSD may also store the object according to the method described above. I won't go into details here.
- the embodiment of the present application further provides a method for storing the object, as follows:
- the storing the object into the target physical block according to the attribute information of the object includes:
- the object is stored in the target physical block according to the size of the object and the stream attribute of the object; wherein the reference physical block is The target physical block is included, and the reference physical block is a physical block in which a part of a page is written in the SSD.
- the reference physical block can also be understood as a physical block in which only a part of a page is compiled in the SSD. That is, in the case that the object belongs to a large object and the current reference physical block in the SSD, or it can also be called that the number of current open blocks does not exceed the number threshold, the SSD can open a new block to write to the object. That is, one or more physical blocks can be selected from the current open block as the target physical block to store the object.
- the number threshold is a threshold for measuring the number of reference physical blocks.
- the number threshold may be related to the power backup of the SSD, and the embodiment does not limit the number threshold.
- an object belonging to a large object can be individually written into a physical block as much as possible, thereby further reducing the write amplification of the SSD.
- the foregoing method further includes:
- the object is stored in the target physical block according to the size of the object; wherein the third physical block set includes The above target physical block.
- the SSD may first determine a physical block set for storing a large object, that is, a third physical block set, and then determine whether the SSD is used for In the physical block that stores a large object (that is, the third physical block set), whether there is a physical block with the same stream ID as the object, and if it exists, the SSD can be based on the stream attribute of the object and the size of the object. Store the object. That is, in the SSD, in the third physical block set, it is determined that there is a physical block with the same stream ID as the object (if it is a target physical block), the SSD can store the object in the target physical block. .
- the third physical block set determined by the SSD may include a physical block in which an object has been written in the SSD, and the written object belongs to a large object.
- the third physical block set determined by the SSD may not be written with an object.
- the SSD can also determine the third physical block set according to other rules.
- the SSD determines that certain physical blocks can be used to store large objects according to other rules.
- the embodiment of the present application does not limit the rules.
- the SSD can store the object according to the size of the object. That is, there is no physical block in the third physical block set that has the same stream ID as the object, the SSD can randomly select a physical block (such as a target physical block) from the third physical block set to store the object. It can be understood that, in the SSD, a physical block with a small degree of concurrency can also be selected from the third physical block set to store the object.
- the physical blocks that store large objects in SSDs include A, B, and C.
- Block to store the object if there is no physical block in the physical block A, B, and C that has the same stream ID as the object, the SSD can arbitrarily select physical blocks from the physical blocks A, B, and C to store pairs Object.
- this embodiment of the present application does not limit it.
- the embodiment of the present application provides two implementation manners, as follows:
- the object is stored in the target physical block.
- a physical block corresponding to the size of the object may be determined as the first physical block set according to the size of the object.
- the determined first physical block set may represent a physical block set storing a small object, or the determined first physical block set represents a physical block set storing a large object.
- the first physical block set may include one or more physical blocks.
- the SSD may determine the target physical block from the first physical block set according to the stream attribute of the object.
- the stream attribute of the object may include the stream ID of the object.
- the object when the SSD obtains the object, the object may carry the stream ID, that is, the stream ID may be assigned by a host connected to the SSD. Or, the flow ID may be allocated by the SSD according to services, etc., which is not limited in the embodiment of the present application.
- the storing the object into the target physical block according to the attribute information of the object includes:
- the object is stored in the target physical block.
- the physical block corresponding to the object's stream attribute can be determined as the second physical block set according to the stream attribute of the object, that is, the determined second physical block set represents the stream ID. Collection of physical blocks. After the second physical block set is determined, a target physical block can be determined from the second physical block set according to the size of the object, and then the object is stored in the target physical block.
- the second physical block set includes at least one physical block
- the first physical block set also includes at least one physical block
- the target physical block can be more specifically determined, so that objects are stored in the target physical block, that is, objects with the same or similar life cycle and the same size are written to the target physical block, thereby reducing the SSD.
- the write amplification increases the service life of the SSD and also improves the performance of the SSD.
- the SSD device can also send instruction information to the other device in advance, so that the other device can plan in advance.
- the above-mentioned object is stored to the object according to the attribute information of the object.
- the above method further includes:
- the instruction information includes one or more of the number of reference active objects in the SSD, the number of reference streams in the SSD, and the size of the physical block in the SSD.
- the number of reference active objects is used to indicate the number of concurrent objects
- the number of reference streams is used to indicate the shunt level
- the size of the physical block is used to indicate the size of the concurrent object
- the size of the physical block includes one of the SSDs The size of a physical block or the sizes of multiple physical blocks.
- the number of reference active objects is used to indicate the number of active objects in the SSD; the number of reference streams is used to indicate the number of stream IDs of objects that can be stored in the SSD; the size of the physical block is used to indicate a single physical object in the SSD.
- the block size, or the physical block size is used to represent an integer multiple of the physical block size in the SSD.
- the physical block refers to any one or more physical blocks in the SSD.
- the above reference active object number can be used to indicate the number of concurrent objects planned by the storage system, that is, the number of objects that the storage system needs to be simultaneously stored by the SSD.
- the above reference flow quantity can be used to instruct the storage system to plan the distribution level. For example, when the storage system allocates a flow ID to an object, it can be allocated according to the reference flow quantity information.
- the size of the physical block can be used to indicate that the storage system plans the size of the concurrent objects, that is, the storage system needs the SSD to store the size of the objects at the same time.
- the reference active object number may also be used to indicate the number of SSD concurrent storage objects.
- the above reference stream number may be used to indicate how much the number of stream IDs of the physical block may be when the SSD opens the physical block.
- the size of the physical block can be used to indicate the size of the SSD concurrent storage object.
- the storage system may also be understood as a host system and the like connected to the SSD.
- the embodiments of the present application do not limit what kind of device, device, or system the storage system is.
- FIG. 3 is a schematic diagram of a scenario of a data storage method provided by an embodiment of the present application. As shown in FIG. 3, the method may include:
- An SSD is connected to a storage system.
- the storage system may be any device or device that can be connected to the SSD, etc.
- the embodiment of the present application does not limit the specific form of the storage system.
- the SSD reports the optimal number of active objects, the optimal number of streams, and the optimal object storage size to the storage system.
- the above information reported by the SSD to the storage system may be determined by the SSD controller and the backup power factor, and may also be determined by the type of the flash memory particles of the SSD, etc., which are not limited in the embodiment of the present application. It can be understood that the optimal number of active objects in the embodiments of the present application can be understood as the number of reference active objects described above, the optimal number of streams can be understood as the number of reference streams described above, and the optimal object storage size can be Understand the size of the physical block in the SSD described above.
- the storage system relies on the information reported by the SSD to plan the number of concurrent objects, the size of the concurrent objects, and the shunt level.
- the concurrent degree of objects allowed to be written by the storage system at the same time is limited. If the storage system side controls the number of SSD active objects under this constraint (i.e. The concurrent degree of objects written by the storage system at the same time), then the overall performance of the system is guaranteed. Therefore, in the embodiments of the present application, the SSD can effectively improve the overall performance of the storage system and the SSD by reporting the optimal number of active objects and the optimal object storage size to the storage system.
- the SSD performs different allocation strategies according to the size of the object itself, stream attributes, and the number of simultaneously active objects.
- FIG. 4 is a schematic diagram of another data storage method provided by an embodiment of the present application. As shown in FIG. 4, the method includes:
- the SSD receives an object to be stored sent by the host.
- the host is a device connected to the SSD, that is, a device in the storage system.
- the SSD judges whether the object is a small object; if so, executes 403; otherwise, executes 404.
- the small object is the small object described in the foregoing embodiment.
- the object sent by the host carries a flow ID.
- the flow ID is flow 2.
- the SSD allocates the object to a physical block for storing a small object according to the stream ID of the object. For example, the SSD writes the object into the physical block corresponding to the small object stream 2 (that is, the target physical block in the foregoing embodiment) according to the object's stream ID2.
- the SSD may map the object to a physical block for storing the small object according to the stream ID of the object, thereby storing the object in the target physical Block (that is, a physical block used to store a small object with the same stream ID as the object).
- the physical block labeled with the flow ID shown in the figure may indicate that other objects have been stored in the physical block (relative to the above objects);
- the physical block of the flow ID may indicate that no other object is stored in the physical block; however, it may also indicate that the large object is not carried in the physical block without the flow ID and so on.
- the embodiment of the present application does not limit whether each physical block shown on the right side of FIG. 4 is marked with a flow ID. That is, the flow ID in each physical block shown on the right is only an example, and should not be construed as limiting the embodiments of the present application.
- the SSD judges whether the number of the current reference physical blocks (open blocks) exceeds the number threshold, and if not, executes 405; if yes, executes 406.
- the SSD may map the object to the reference physical block, thereby storing the object in the reference physical block. It can be understood that the SSD may store the object in one reference physical block or multiple reference physical blocks, which is not limited in the embodiment of the present application.
- the SSD determines that the least number of currently written objects is used to store the physical block (that is, the third physical block set) of the large object. For example, the SSD can find out that the least number of currently written objects and the physical blocks used to store large objects include physical blocks corresponding to large object 1, physical blocks corresponding to large object j, physical blocks corresponding to large object o, and large objects.
- the physical block in the third physical block set may be one, may be multiple, etc., and is not limited in the embodiment of the present application.
- the above-mentioned write object is the least, and the flow ID of the physical block corresponding to the large object o and the object's flow ID are used to store the large object in the physical block of the large object, then write the object to the physical block corresponding to the large object o Target physical block).
- the stream IDs of the foregoing objects (that is, the large object 1, the large object i, the large object o, and the large object r) are different from the object's flow ID, then the SSD uses the physical blocks with small concurrency. A large object r is randomly selected, and the object is written into a physical block corresponding to the large object r.
- the write amplification of the SSD can be effectively reduced, and the lifetime of the SSD can be significantly improved.
- FIG. 5 is a schematic structural diagram of another SSD provided by an embodiment of the present application. As shown in FIG. 5, the SSD includes:
- the obtaining unit 501 is configured to obtain an object to be stored, where the object to be stored includes data to be stored in the solid-state hard disk SSD;
- the storage unit 502 is configured to store the object into a target physical block according to the attribute information of the object.
- the target physical block is one or more physical blocks corresponding to the attribute information of the object in the SSD.
- the embodiment of the present application by storing objects with the same attribute information in the target physical block, it is possible to effectively avoid the need to frequently target the target when the objects with different attribute information are stored in the target physical block.
- the physical block is erased. Therefore, by implementing the embodiments of the present application, frequent erasing operations on physical blocks are avoided, and the service life of the SSD is effectively improved.
- the attribute information of the object includes one or more of a size of the object and a stream attribute of the object.
- a first determining subunit 5021 configured to determine a first physical block set according to the size of the object
- a second determining subunit 5022 configured to determine the target physical block from the first physical block set according to the stream attribute of the object
- the storage subunit 5023 is configured to store the object into the target physical block.
- the foregoing storage unit 502 includes:
- a third determining subunit 5024 configured to determine a second physical block set according to the stream attribute of the object
- the storage subunit 5023 is configured to store the object into the target physical block.
- the object is a large object
- the object is a small object.
- the storage unit 502 is specifically configured to, when the object belongs to a large object, and the number of reference physical blocks does not exceed the number threshold, the storage unit 502 may be configured according to the size of the object and the stream attribute of the object.
- the object is stored in the target physical block; the reference physical block includes the target physical block, and the reference physical block is a physical block in which a part of a page is written in the SSD.
- the storage unit 502 is specifically configured to determine a physical block set used to store a large object as a third physical block set when the object is a large object and the number of the reference physical blocks exceeds the number threshold. ; And when there is no physical block in the third physical block set that has the same stream attribute as the object, the object is stored in the target physical block according to the size of the object; wherein the third physical block set Include the target physical blocks mentioned above.
- the above solid-state hard disk further includes:
- the sending unit 503 is configured to send instruction information to the storage system connected to the SSD.
- the instruction information includes: the number of reference active objects in the SSD, the number of reference streams in the SSD, and the size of the physical block in the SSD.
- the number of reference active objects is used to indicate the number of concurrent objects
- the number of reference streams is used to indicate the shunt level
- the size of the physical block is used to indicate the size of the concurrent object
- the size of the physical block is It is the size of one physical block or the size of multiple physical blocks in the SSD.
- each unit may also correspond to the corresponding description of the method embodiments shown in FIG. 2 to FIG. 4, which will not be repeated here.
- the SSD control unit 101 in the SSD shown in FIG. 1 can also be used to execute the methods performed by the obtaining unit 501 and the storage unit 502 described in the embodiment of the present application, which will not be detailed one by one here.
- the processes may be completed by a computer program instructing related hardware.
- the program may be stored in a computer-readable storage medium. It may include the processes of the method embodiments described above.
- the foregoing storage medium includes: a read-only memory (ROM) or a random access memory (RAM), a magnetic disk, or an optical disk, which can store various program codes. It can be understood that the foregoing storage medium may also include other types of storage media, etc., which is not limited in this application.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请提供了一种数据存储方法及固态硬盘。该方法包括:获取待存储的对象,该待存储的对象包括待存储至固态硬盘SSD中的数据;根据该对象的属性信息将该对象存储至目标物理块中;其中,该目标物理块为该SSD中与该对象的属性信息相对应的一个或多个物理块。相应的,本申请还提供了一种固态硬盘。采用本申请可有效提高固态硬盘的寿命。
Description
本申请涉及芯片技术领域,尤其涉及一种数据存储方法及数据存储装置。
随着中央处理器(central processing unit,CPU)逐渐成为上层存储系统的瓶颈,简化协议栈、将部分功能下移硬盘、充分利用大量并行计算来提升系统性能逐渐成为行业未来的发展趋势。同时,提供对象存储接口的固态硬盘(solid state disk,SSD)逐步成为主流。
其中,在存储对象时,该对象的写入过程如下所示:可以整个对象一起写入(put),或者,也可以采用追加写(append)的方式陆续将整个对象全部写入。同时,SSD的最小读写单位是页(page),SSD的最小擦除单位为块(block)。也就是说,在写入SSD中的对象过多的情况下,由于SSD需要不断的进行垃圾回收,由此,在将对象写入到SSD中时,需要先擦除一些块,然后再写入该对象。
从上可以看出,SSD的目标写入值与实际写入值(要求写入数据量与实际写入数据量)之间有倍数关系,俗称写放大。其中,写入放大数值越大,SSD的使用寿命越短。因此如何提高SSD的使用寿命是亟待解决的问题。
发明内容
本申请公开了一种数据存储方法及数据存储装置,能够提高数据存储装置的使用寿命。
第一方面,本申请实施例提供了一种数据存储方法,包括:
获取待存储的对象,所述待存储的对象包括待存储至固态硬盘SSD中的数据;根据所述对象的属性信息将所述对象存储至目标物理块中;其中,所述目标物理块为所述SSD中与所述对象的属性信息相对应的一个或多个物理块。
其中,目标物理块可为SSD中与对象的属性信息相对应的一个物理块(block),或者,该目标物理块还可以为SSD中与对象的属性信息相对应的多个物理块组合而成的逻辑块,本申请实施例对于该目标物理块中所包含的物理块的数量不作限定。
本申请实施例中,通过将具有相同属性信息的对象存储至目标物理块中,即将具有相同属性信息的对象存储至同一个或多个物理块中,可以有效避免在将具有不同属性信息的对象存储至该目标物理块的情况下,而导致需要经常的对该目标物理块进行擦除操作。因此,通过实施本申请实施例,避免了经常性的对物理块进行擦除操作,有效提高了SSD的使用寿命。
在一种可能的实现方式中,所述对象的属性信息包括:所述对象的大小和所述对象的流属性中的一项或多项。
其中,对象的大小可表示该对象所占用的存储空间的大小,该对象的流属性可包括该对象的流标识(identity,ID),以及该对象的流属性还可能包括该对象的其他流属性等等, 本申请实施例对于该对象的流属性不作限定。具体的,该对象的属性信息可以包括对象的大小;或者,该对象的属性信息可以包括该对象的流属性;或者,该对象的属性信息包括该对象的大小和该对象的流属性。
本申请实施例中,通过根据对象的大小和对象的流属性来存储,可以将大小相同以及流属性相同的对象存储至目标物理块中,还可以有效避免在执行写入操作时,由于要求写入数据量过小,而实际写入量过大的情况,从而可以降低SSD的写放大,进而显著提高了SSD的使用寿命。
在一种可能的实现方式中,所述根据所述对象的属性信息将所述对象存储至目标物理块中,包括:根据所述对象的大小确定第一物理块集合;根据所述对象的流属性从所述第一物理块集合中确定所述目标物理块;将所述对象存储至所述目标物理块中。
本申请实施例中,第一物理块集合可以包括一个物理块,也可以包括多个物理块,本申请实施例不作限定。具体的,在确定第一物理块集合后,还可以通过对象的流属性从该第一物理块集合中确定出目标物理块,从而将该对象存储至该目标物理块中。
在一种可能的实现方式中,所述根据所述对象的属性信息将所述对象存储至目标物理块中,包括:根据所述对象的流属性确定第二物理块集合;根据所述对象的大小从所述第二物理块集合中确定所述目标物理块;将所述对象存储至所述目标物理块中。
本申请实施例中,第二物理块集合也可以包括一个物理块,以及还可以包括多个物理块,本申请实施例不作限定。
在一种可能的实现方式中,在所述对象的大小大于或等于物理块的大小的三分之一的情况下,所述对象属于大对象;或在所述对象的大小小于所述物理块的大小的三分之一的情况下,所述对象属于小对象。
本申请实施例中,通过进一步区分对象的大小,将大小大于或等于物理块的大小的三分之一的对象作为大对象,如将大小大于或等于物理块的大小三分之一的对象存入一个物理块中,可以明显提高写放大的收益,从而提高SSD的使用寿命。
在一种可能的实现方式中,所述根据所述对象的属性信息将所述对象存储至目标物理块中,包括:在所述对象属于大对象,且参考物理块的数量未超过数量阈值的情况下,根据所述对象的大小和所述对象的流属性将所述对象存储至所述目标物理块中;其中,所述参考物理块中包括所述目标物理块,所述参考物理块为所述SSD中写入部分页的物理块。
本申请实施例中,该参考物理块也可以理解为SSD中只编译了部分页的物理块。
本申请实施例中,不仅可以根据对象的大小以及流属性来执行存储操作,还可以根据参考物理块的数量来执行该存储操作,从而可进一步提高SSD的使用寿命。
在一种可能的实现方式中,所述方法还包括:在所述对象属于大对象,所述参考物理块的数量超过所述数量阈值的情况下,确定用于存储大对象的物理块集合作为第三物理块集合;以及在所述第三物理块集合中不存在与所述对象的流属性相同的物理块的情况下,根据所述对象的大小将所述对象存储至所述目标物理块中;其中,所述第三物理块集合中包括所述目标物理块。
在一种可能的实现方式中,所述根据所述对象的属性信息将所述对象存储至目标物理块中之前,所述方法还包括:向与所述SSD连接的存储系统发送指示信息;其中,所述指 示信息包括:所述SSD中的参考活跃对象数量、所述SSD中的参考流数量以及所述SSD中物理块的大小中的一项或多项;其中,所述参考活跃对象数量用于指示并发对象的数量,所述参考流数量用于指示分流级别,所述物理块的大小用于指示并发对象的大小,所述物理块的大小包括所述SSD中一个物理块的大小或多个物理块的大小。
本申请实施例中,通过向与SSD连接的存储系统上报参考活跃对象数量,SSD中的参考流数量以及物理块的大小,可以使得该存储系统根据上述信息,分别规划并发对象的数量,分流级别以及并发对象的大小。有效提高了SSD的输入输出(input/output,IO)效率,提高了SSD的整体性能。
第二方面,本申请实施例提供了一种固态硬盘,包括:
获取单元,用于获取待存储的对象,所述待存储的对象包括待存储至所述固态硬盘SSD中的数据;存储单元,用于根据所述对象的属性信息将所述对象存储至目标物理块中;其中,所述目标物理块为所述SSD中与所述对象的属性信息相对应的一个或多个物理块。
在一种可能的实现方式中,所述对象的属性信息包括:所述对象的大小和所述对象的流属性中的一项或多项。
在一种可能的实现方式中,所述存储单元包括:第一确定子单元,用于根据所述对象的大小确定第一物理块集合;第二确定子单元,用于根据所述对象的流属性从所述第一物理块集合中确定所述目标物理块;存储子单元,用于将所述对象存储至所述目标物理块中。
在一种可能的实现方式中,所述存储单元包括:第三确定子单元,用于根据所述对象的流属性确定第二物理块集合;第四确定子单元,用于根据所述对象的大小从所述第二物理块集合中确定所述目标物理块;存储子单元,用于将所述对象存储至所述目标物理块中。
在一种可能的实现方式中,在所述对象的大小大于或等于物理块的大小的三分之一的情况下,所述对象属于大对象;或在所述对象的大小小于所述物理块的大小的三分之一的情况下,所述对象属于小对象。
在一种可能的实现方式中,所述存储单元,具体用于在所述对象属于大对象,且参考物理块的数量未超过数量阈值的情况下,根据所述对象的大小以及所述对象的流属性将所述对象存储至所述目标物理块中;其中,所述参考物理块中包括所述目标物理块,所述参考物理块为所述SSD中写入部分页的物理块。
在一种可能的实现方式中,所述存储单元,具体用于在所述对象属于大对象,且所述参考物理块的数量超过所述数量阈值的情况下,确定用于存储大对象的物理块集合作为第三物理块集合;以及在所述第三物理块集合中不存在与所述对象的流属性相同的物理块的情况下,根据所述对象的大小将所述对象存储至所述目标物理块中;其中,所述第三物理块集合中包括所述目标物理块。
在一种可能的实现方式中,所述固态硬盘还包括:发送单元,用于向与所述SSD连接的存储系统发送指示信息;其中,所述指示信息包括:所述SSD中的参考活跃对象数量、所述SSD中的参考流数量以及所述SSD中物理块的大小中的一项或多项;其中,所述参考活跃对象数量用于指示并发对象的数量,所述参考流数量用于指示分流级别,所述物理块的大小用于指示并发对象的大小,所述物理块的大小包括所述SSD中一个物理块的大小或 多个物理块的大小。
可理解,本申请所描述的数据存储装置包括本申请实施例中的SSD。
第三方面,本申请实施例还提供了一种控制器,包括:
获取单元,用于获取待存储的对象,所述待存储的对象包括待存储至与所述控制器连接的数据存储装置中的数据;存储单元,用于根据所述对象的属性信息将所述对象存储至目标物理块中;其中,所述目标物理块为所述数据存储装置中与所述对象的属性信息相对应的一个或多个物理块。
在一种可能的实现方式中,所述对象的属性信息包括:所述对象的大小和所述对象的流属性中的一项或多项。
在一种可能的实现方式中,所述存储单元包括:第一确定子单元,用于根据所述对象的大小确定第一物理块集合;第二确定子单元,用于根据所述对象的流属性从所述第一物理块集合中确定所述目标物理块;存储子单元,用于将所述对象存储至所述目标物理块中。
在一种可能的实现方式中,所述存储单元包括:第三确定子单元,用于根据所述对象的流属性确定第二物理块集合;第四确定子单元,用于根据所述对象的大小从所述第二物理块集合中确定所述目标物理块;存储子单元,用于将所述对象存储至所述目标物理块中。
在一种可能的实现方式中,在所述对象的大小大于或等于物理块的大小的三分之一的情况下,所述对象属于大对象;或在所述对象的大小小于所述物理块的大小的三分之一的情况下,所述对象属于小对象。
在一种可能的实现方式中,所述存储单元,具体用于在所述对象属于大对象,且参考物理块的数量未超过数量阈值的情况下,根据所述对象的大小以及所述对象的流属性将所述对象存储至所述目标物理块中;其中,所述参考物理块中包括所述目标物理块,所述参考物理块为所述数据存储装置中写入部分页的物理块。
在一种可能的实现方式中,所述存储单元,具体用于在所述对象属于大对象,且所述参考物理块的数量超过所述数量阈值的情况下,确定用于存储大对象的物理块集合作为第三物理块集合;以及在所述第三物理块集合中不存在与所述对象的流属性相同的物理块的情况下,根据所述对象的大小将所述对象存储至所述目标物理块中;其中,所述第三物理块集合中包括所述目标物理块。
可理解,本申请实施例中的数据存储装置可以包括SSD等等,本申请实施例对于该数据存储装置不作唯一性限定。
第四方面,本申请实施例还提供了一种固态硬盘SSD,包括控制单元和存储单元;其中,所述存储单元,用于存储对象;所述控制单元,用于调用存储在所述存储单元中的程序指令,以执行如第一方面所述的相应的方法。
如所述控制单元,可用于获取待存储的对象,以及根据所述对象的属性信息将所述对象存储至目标物理块中;其中,所述待存储的对象包括待存储至SSD中的数据;以及所述目标物理块为所述SSD中与所述对象的属性信息相对应的一个或多个物理块。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中 存储有指令,当所述指令在计算机上运行时,使得所述计算机执行上述第一方面所述的方法。
第六方面,本发明实施例提供了一种计算机程序,所述计算机程序包括指令,当所述计算机程序被所述计算机执行时,使得所述计算机可以执行上述第一方面所提供的数据存储方法的流程。
图1是本申请实施例提供的一种SSD的结构示意图;
图2是本申请实施例提供的一种数据存储方法的流程示意图;
图3是本申请实施例提供的一种数据存储方法的场景示意图;
图4是本申请实施例提供的另一种数据存储方法的场景示意图;
图5是本申请实施例提供的另一种SSD的结构示意图;
图6是本申请实施例提供的一种存储单元的结构示意图;
图7是本申请实施例提供的另一种存储单元的结构示意图;
图8是本申请实施例提供的又一种SSD的结构示意图。
下面结合本申请实施例中的附图,对本申请实施例进行描述。
本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
参见图1,图1是本申请实施例提供的一种包括控制单元和存储单元的简化的固态硬盘的结构示意图,如图1所示,该固态硬盘可包括SSD控制器和缓存阵列,即flash阵列。
其中,SSD控制器和flash阵列通过线路相互连接。
具体的,该SSD控制器是SSD的核心器件,可用于合理调配数据在各个flash阵列上的负荷,以及该SSD控制器还可用于数据中转,连接flash阵列和外部串行接口。其中,该外部串行接口也可以称为主机(host)接口。
该flash阵列可用于存储数据和计算机程序指令,如本申请实施例中,该flash阵列可用于存储对象。具体的,flash阵列中可以包括多个闪存颗粒,每个闪存颗粒又可以包括多个物理块。可选的,至于每个闪存颗粒包含多少大小的物理块,本申请实施例不作限定。如该闪存颗粒所包含的物理块可以由出厂商设置等。
其中,闪存颗粒的写入单位为页(page),擦除单元为块(block),可理解,本申请实施例中,该闪存颗粒的擦除单元即块也可称为物理块。
可选的,该SSD控制器可以通过软件、硬件或通过硬件执行相应的软件实现本申请实 施例所提供的数据存储方法。如该SSD控制器还可以进一步包括硬件芯片,该硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),或者该硬件芯片还可以是现场可编程逻辑门阵列(field programmable gate array,FPGA)等等,本申请实施例不作限定。
进一步的,图1所示的固态硬盘还可以包括缓存,如该缓存可包括动态随机存取存储器(dynamic random access memory,DRAM)。
示例性的,在本申请实施例中,将具有存储功能的flash阵列和DRAM视为固态硬盘的存储单元,将具有处理功能的SSD控制器视为固态硬盘的控制单元。如图1所示,该固态硬盘包括控制单元101和存储单元102。该存储单元也可以称为存储器、存储设备和存储装置等等。该控制单元也可称为控制器、控制单板、控制模块和控制装置等等。
可理解,以上仅为本申请实施例提供的一种简化的SSD的结构示意图,在具体实现中,可能还包括其他芯片或装置等,本申请实施例不作限定。
在实际应用中,在存储数据时,往往会出现随机存储数据的现象,即随机将数据存入某个物理块,由此,在需要写入数据时,可能会增加写放大,从而使得SSD的使用寿命低下,因此,本申请实施例提供了一种数据存储方法,可有效增加SSD的使用寿命。
参见图2,图2是本申请实施例提供的一种数据存储方法的流程示意图,该数据存储方法可应用于图1所示的SSD,如图2所示,该数据存储方法包括:
201、获取待存储的对象,上述待存储的对象包括待存储至固态硬盘SSD中的数据。
本申请实施例中,待存储的对象包括待存储至SSD中的数据,也就是说该对象包括需要存储到SSD中的数据。
202、根据上述对象的属性信息将上述对象存储至目标物理块中;其中,上述目标物理块为上述SSD中与上述对象的属性信息相对应的一个或多个物理块。
本申请实施例中,目标物理块可以为单个物理块,也可以为多个物理块组合而成的逻辑块。本申请实施例对于该对象具体存储在几个物理块中不作限定,也就是说,该目标物理块中包含多少个物理块,本申请实施例不作限定。
其中,在需要将对象存储至SSD中时,可以将具有相同属性信息的对象存储至目标物理块中,也就是说,将具有相同属性信息的对象存储至同一个或多个物理块中。通过将具有相同属性信息的对象存储在一起,可以有效避免属性不同,SSD需要不断进行擦除操作或写入操作。从而有效降低了SSD的写放大,提高了SSD的使用寿命。
具体的,上述对象的属性信息包括:上述对象的大小和上述对象的流属性中的一项或多项。
也就是说,在需要将对象存储至SSD中时,可以根据该对象的大小来存储,也可以根据该对象的流属性来存储,也可以根据该对象的大小和该对象的流属性来存储。
可理解,SSD在根据上述对象的属性信息将上述对象存储至目标物理块之前,该SSD也可以先确定该目标物理块。确定该目标物理块的方法如该SSD可以根据对象的属性信息查找闪存颗粒中是否存在与该对象的属性信息对应的物理块,该SSD查找到存在与该对象的属性信息对应的物理块的情况和该SSD未查找到存在与该对象的属性信息对应的物理块 的情况分别如下所示:
可理解,以下将以该对象的属性信息包括该对象的大小和该对象的流ID为例来说明。
情况一、该SSD根据对象的属性信息查找到与该对象的属性信息对应的物理块
在该情况下,该SSD可根据对象的大小和流ID,查找是否存在与该对象的大小且与该对象的流ID对应的物理块,在存在与该对象的大小且与该对象的流ID对应的物理块的情况下,确定与该对象的大小且与该对象的流ID对应的物理块作为目标物理块,进而将该对象存储至该目标物理块中。
对于该情况,可能包括的情况为:在未存储上述所描述的对象(如为对象1)之前,目标物理块中已经存储有其他对象(如为对象2),且该其他对象(即对象2)的流ID与上述对象(即对象1)的流ID相同,且该其他对象(即对象2)的大小与上述对象(即对象1)的大小属于同一类(如均为小对象)。
情况二、该SSD根据对象的属性信息未查找到与该对象的属性信息对应的物理块
在该情况下,该SSD可以根据该对象的大小和该对象的流ID将该对象存储至目标物理块中。对于该情况,可能包括的情况为:该目标物理块中未存储有对象。可理解,对于该SSD未查找到与该对象的属性信息对应的物理块时,可能包括的情况不作限定,如也可能该目标物理块中存储有其他对象,但是在存储该其他对象时,未携带该其他对象的流ID等。可理解,本申请实施例所描述的其他对象为相对于上述待存储的对象而言的其他对象。
具体的,在根据对象的大小区分对象时,该对象的大小可包括小对象和大对象。如在上述对象的大小大于或等于物理块的大小的三分之一的情况下,上述对象属于大对象;或在上述对象的大小小于上述物理块的大小的三分之一的情况下,上述对象属于小对象。
可理解,上述所描述的物理块表示单个物理块,如对象的大小接近单个物理块的大小,则在将该对象写入SSD中时,该SSD的写放大将会很小。又如对象的大小接近多个物理块之和的大小,则SSD的写放大将会很小。由此,本申请实施例中,通过区分大对象和小对象,可进一步降低SSD的写放大,增加SSD的使用寿命。
可理解,在对象的属性信息包括对象的大小的情况下,该SSD也可以根据以上所描述的方法来存储对象。以及,在该对象的属性信息包括对象的流ID的情况下,该SSD也可以根据以上所描述的方法来存储对象。这里不再详述。
进一步的,在对象的属性信息包括对象的大小和对象的流属性的情况下,且该对象为大对象的情况下,本申请实施例还提供了一种如何存储对象的方法,如下所示:
上述根据上述对象的属性信息将上述对象存储至目标物理块中,包括:
在上述对象属于大对象,且参考物理块的数量未超过数量阈值的情况下,根据上述对象的大小以及上述对象的流属性将上述对象存储至上述目标物理块中;其中,上述参考物理块中包括上述目标物理块,上述参考物理块为上述SSD中写入部分页的物理块。
本申请实施例中,参考物理块也可以理解为SSD中只编译了部分页(page)的物理块。也就是说,在对象属于大对象,且SSD中当前参考物理块,或者也可以称为当前open block的数量未超过数量阈值的情况下,该SSD可以新open一个block写入该对象。即可以从当前open block中选择一个或多个物理块作为目标物理块,从而来存储该对象。
具体的,该数量阈值为衡量参考物理块的数量的阈值,如该数量阈值可以与该SSD的备电等相关,本申请实施例对于该数量阈值不作限定。
通过实施本申请实施例,使得属于大对象的对象能够尽可能的单独写入一个物理块,由此可进一步减少SSD的写放大。
在一种可能的实现方式中,上述方法还包括:
在上述对象属于大对象,且上述参考物理块的数量超过上述数量阈值的情况下,确定用于存储大对象的物理块集合作为第三物理块集合;
在上述第三物理块集合中不存在与上述对象的流属性相同的物理块的情况下,根据上述对象的大小将上述对象存储至上述目标物理块中;其中,上述第三物理块集合中包括上述目标物理块。
本申请实施例中,在参考物理块的数量已超过数量阈值的情况下,该SSD便可先确定用于存储大对象的物理块集合即第三物理块集合,从而再判断该SSD中用于存储大对象的物理块中(即第三物理块集合),是否存在与该对象的流ID相同的物理块,在存在的情况下,该SSD可根据该对象的流属性以及该对象的大小来存储该对象。也就是说,在该SSD在第三物理块集合中确定出有与该对象的流ID相同的物理块(如为目标物理块),则该SSD便可将该对象存储至该目标物理块中。可理解,SSD确定出的第三物理块集合可包括SSD中已写入有对象的物理块,且已写入的对象属于大对象。或者,该SSD确定出的第三物理块集合也可能未写入有对象。如该SSD还可以根据其他规则来确定该第三物理块集合,如该SSD根据其他规则确定某些物理块可用于存储大对象,至于根据什么规则本申请实施例不作限定。
而在不存在的情况下,该SSD便可根据对象的大小来存储该对象。即在第三物理块集合中不存在与该对象的流ID相同的物理块,则该SSD便可从该第三物理块集合中随机选择物理块(如目标物理块)来存储该对象。可理解,该SSD中还可以从该第三物理块集合中选择并发度小的物理块来存储该对象。
举例来说,SSD中存储大对象的物理块包括A、B和C,则在存储属于大对象的对象时,可以从该物理块A、B和C中选择与该对象的流ID相同的物理块来存储该对象;若该物理块A、B和C中不存在与该对象的流ID相同的物理块,则该SSD可以从该物理块A、B和C中任意选择物理块来存储对对象。至于具体选择多少个物理块来存储该对象,本申请实施例不作限定。
通过实施本申请实施例,可以尽可能的保证SSD的性能以及使用寿命达到最优。
其中,在根据以根据对象的大小和该对象的流属性来存储的情况下,本申请实施例提供了两种实现方式,分别如下所示:
实现方式一、
上述根据上述对象的属性信息将上述对象存储至目标物理块中,包括:
根据上述对象的大小确定第一物理块集合;
根据上述对象的流属性从上述第一物理块集合中确定上述目标物理块;
将上述对象存储至上述目标物理块中。
本申请实施例中,可以先根据对象的大小确定出与该对象的大小相对应的物理块作为第一物理块集合。如确定出的第一物理块集合可表示存储小对象的物理块集合,或者,确定出的第一物理块集合表示存储大对象的物理块集合。具体的,该第一物理块集合中可以包括一个或多个物理块。本申请实施例中,在根据对象的大小确定出第一物理块集合后,该SSD便可以根据该对象的流属性从该第一物理块集合中确定出目标物理块。
其中,该对象的流属性可包括对象的流ID,可选的,在SSD获取对象时,该对象可携带该流ID,也就是说,该流ID可由与该SSD连接的主机(host)分配,或者,该流ID可由SSD根据业务分配等等,本申请实施例不作限定。
实现方式二、
上述根据上述对象的属性信息将上述对象存储至目标物理块中,包括:
根据上述对象的流属性确定第二物理块集合;
根据上述对象的大小从上述第二物理块集合中确定上述目标物理块;
将上述对象存储至上述目标物理块中。
本申请实施例中,可以根据对象的流属性确定出与该对象的流属性对应的物理块作为第二物理块集合,也就是说,确定出的第二物理块集合即表示流ID相对应的物理块集合。在确定出该第二物理块集合后,便可根据对象的大小从该第二物理块集合中再确定出目标物理块,进而将该对象存储至该目标物理块中。
可理解,该第二物理块集合至少包括一个物理块,以及上述第一物理块集合也至少包括一个物理块。
可理解,对于实现方式二的具体实现方式还可参考实现方式一的具体实现方式,这里不再一一详述。
通过实施上述实施例,可以更加具体的确定出目标物理块,从而将对象存储至该目标物理块,即将具有相同或相似生命周期以及相同大小的对象写入到目标物理块中,进而降低了SSD的写放大,增加SSD的使用寿命,也提高了SSD的性能。
更进一步的,在SSD与其他设备连接时,该SSD设备还可以提前向该其他设备发送指示信息,从而可方便该其他设备提前规划,具体的,上述根据上述对象的属性信息将上述对象存储至目标物理块中之前,上述方法还包括:
向与上述SSD连接的存储系统发送指示信息,其中,上述指示信息包括:上述SSD中的参考活跃对象数量、上述SSD中的参考流数量以及上述SSD中物理块的大小中的一项或多项;其中,上述参考活跃对象数量用于指示并发对象的数量,上述参考流数量用于指示分流级别,上述物理块的大小用于指示并发对象的大小,上述物理块的大小包括上述SSD中的一个物理块的大小或多个物理块的大小。
其中,参考活跃对象数量用于表示SSD中活跃的对象个数;参考流数量用于表示该SSD中所能存储的对象的流ID的个数;物理块的大小用于表示该SSD中单个物理块的大小,或者该物理块的大小用于表示该SSD中物理块大小的整数倍。其中,该物理块即表示SSD的中任意一个或多个物理块。
具体的,上述参考活跃对象数量可用于指示存储系统规划好并发对象的数量,即表示 存储系统需要SSD同时存储对象的数量。上述参考流数量可用于指示存储系统规划好分流级别,如在存储系统为对象分配流ID时,可以根据该参考流数量信息来分配。上述物理块的大小可用于指示存储系统规划好并发对象的大小,即表示存储系统需要SSD同时存储对象的大小。
或者,上述参考活跃对象数量还可用于指示该SSD并发存储对象的数量。上述参考流数量可用于指示该SSD在open物理块时,该物理块的流ID的数量可为多少。上述物理块的大小可用于指示该SSD并发存储对象的大小。
其中,存储系统也可以理解为与该SSD连接的主机(host)系统等等,本申请实施例对于该存储系统具体为何种装置或设备或系统等不作限定。
为了更形象的理解上述所描述的数据存储方法,以下将以具体场景为例来说明。
参见图3,图3是本申请实施例提供的一种数据存储方法的场景示意图,如图3所示,该方法可包括:
301、SSD接入到存储系统中。
本申请实施例中,存储系统可为任意的能够与SSD连接的设备或装置等等,本申请实施例对于该存储系统的具体形式不作限定。
302、SSD向存储系统上报最佳活跃对象个数、最优流个数以及最优对象存储大小。
其中,SSD向存储系统上报的上述信息可由SSD的控制器以及备电因素来确定,也可由SSD的闪存颗粒的类型来确定等等,本申请实施例不作限定。可理解,本申请实施例中的最佳活跃对象个数可理解为上述所描述的参考活跃对象数量,最优流个数可理解为上述所描述的参考流数量,以及最优对象存储大小可理解为上述所描述的SSD中物理块的大小。
303、存储系统依靠SSD上报的信息,规划好并发对象个数、并发对象大小以及分流级别。
举例来说,受限于SSD备电等一些自身因素,同一时刻允许存储系统同时写入的对象并发度是有限的,如果存储系统侧将SSD的活跃对象个数控制在这一约束条件(即存储系统同时写入的对象的并发度)下,那么系统的整体性能得以保障。因此,本申请实施例中,SSD通过向存储系统上报最佳活跃对象个数以及最优对象存储大小,可有效提高存储系统和SSD的整体性能。
304、SSD根据对象本身大小、流属性、以及同时活跃的对象个数等进行不同的分配策略。
具体的,对于不同的分配策略可参考前述实施例所描述的存储方法,这里不再赘述。
通过图3所示的数据存储方法,可以保证SSD性能及寿命达到最优。
参见图4,图4是本申请实施例提供的另一种数据存储方法的场景示意图,如图4所示,该方法包括:
401、SSD接收主机发送的待存储的对象。
其中,主机即为与SSD连接的设备,也即为存储系统中的一种设备。
402、SSD判断该对象是否为小对象;若是,则执行403;否则,执行404。
其中,该小对象即为前述实施例所描述的小对象。其中,主机发送的对象中携带有流ID,如该流ID为流2。
403、SSD根据该对象的流ID将该对象分到用于存放小对象的物理块上。如该SSD根据该对象的流ID2,将该对象写入小对象流2对应的物理块(即上述实施例中的目标物理块)中。
其中,对于步骤403,在SSD判断该对象为小对象的情况下,该SSD可以根据该对象的流ID将该对象映射到用于存放小对象的物理块上,从而将该对象存储在目标物理块(即用于存放小对象的物理块,且流ID与该对象相同)中。
其中,在图4所示的示意图中,如图中所示的标有流ID的物理块可以表示该物理块中已存储有其他对象(相对于上述对象来说);而图中未标出流ID的物理块可以表示该物理块中未存储有其他对象;但是,也可以表示该物理块中存储大对象时未携带流ID等等。本申请实施例对于图4右边所示的各个物理块是否标有流ID不作限定。即右边所示的各个物理块中的流ID仅为一种示例,不应理解为对本申请实施例的限定。
404、SSD判断当前参考物理块(open block)的数量是否超过数量阈值,若否;则执行405;若是,则执行406。
405、将该对象写入到参考物理块中,即新open物理块(即目标物理块)写入属于大对象的对象。
其中,对于步骤405,在SSD判断参考物理块的数量未超过数量阈值的情况下,该SSD便可以将该对象映射到该参考物理块中,从而将该对象存储于该参考物理块中。可以理解,该SSD可以将该对象存储在一个参考物理块中,也可以存储在多个参考物理块中,本申请实施例不作限定。
406、SSD确定当前写入对象最少,且用于存储大对象的物理块(即第三物理块集合)。如SSD可以通过查到,得到当前写入对象最少,且用于存储大对象的物理块包括大对象l对应的物理块、大对象j对应的物理块、大对象o对应的物理块和大对象r对应的物理块。
可理解,第三物理块集合中的物理块可为一个,也可为多个等,本申请实施例不作限定。
407、确定上述写入对象最少,且用于存储大对象的物理块中是否有与对象的流ID相同的物理块;若是,则执行408;否则,执行409.
408、上述写入对象最少,且用于存储大对象的物理块中大对象o对应的物理块的流ID与对象的流ID,则将该对象写入到大对象o对应的物理块(即目标物理块)中。
409、上述几个对象(即大对象l、大对象i、大对象o和大对象r)的流ID与该对象的流ID均不同,则该SSD从这几个并发度小的物理块中随机选择出大对象r,将该对象写入到大对象r对应的物理块中。
可理解,图4所示的物理块的数量以及流ID仅为一种示例,不应理解为对本申请实施例的限定。对于图4所示的数据存储方法的具体实现方式还可参考前述各个实施例,这里不再详述。
通过实施本申请实施例,可有效降低SSD的写放大,显著提高了SSD的寿命。
可理解,上述各个实施例的侧重点不同,因此一个实施例中未详尽描述的实现方式, 还可参考其他实施例。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
参见图5,图5是本申请实施例提供的另一种SSD的结构示意图,如图5所示,该SSD包括:
获取单元501,用于获取待存储的对象,上述待存储的对象包括待存储至上述固态硬盘SSD中的数据;
存储单元502,用于根据上述对象的属性信息将上述对象存储至目标物理块中;其中,上述目标物理块为上述SSD中与上述对象的属性信息相对应的一个或多个物理块。
本申请实施例中,通过将具有相同属性信息的对象存储至目标物理块中,可以有效避免在将具有不同属性信息的对象存储至该目标物理块的情况下,而导致需要经常的对该目标物理块进行擦除操作。因此,通过实施本申请实施例,避免了经常性的对物理块进行擦除操作,有效提高了SSD的使用寿命。
具体的,上述对象的属性信息包括:上述对象的大小和上述对象的流属性中的一项或多项。
在一种可能的实现方式中,参见图6,上述存储单元502包括:
第一确定子单元5021,用于根据上述对象的大小确定第一物理块集合;
第二确定子单元5022,用于根据上述对象的流属性从上述第一物理块集合中确定上述目标物理块;
存储子单元5023,用于将上述对象存储至上述目标物理块中。
在一种可能的实现方式中,参见图7,上述存储单元502包括:
第三确定子单元5024,用于根据上述对象的流属性确定第二物理块集合;
第四确定子单元5025,用于根据上述对象的大小从上述第二物理块集合中确定上述目标物理块;
存储子单元5023,用于将上述对象存储至上述目标物理块中。
具体的,在上述对象的大小大于或等于物理块的大小的三分之一的情况下,上述对象属于大对象;或
在上述对象的大小小于上述物理块的大小的三分之一的情况下,上述对象属于小对象。
在一种可能的实现方式中,上述存储单元502,具体用于在上述对象属于大对象,且参考物理块的数量未超过数量阈值的情况下,根据上述对象的大小以及上述对象的流属性将上述对象存储至上述目标物理块中;其中,上述参考物理块中包括上述目标物理块,上述参考物理块为上述SSD中写入部分页的物理块。
可选的,上述存储单元502,具体用于在上述对象属于大对象,且上述参考物理块的数量超过上述数量阈值的情况下,确定用于存储大对象的物理块集合作为第三物理块集合;以及在上述第三物理块集合中不存在与上述对象的流属性相同的物理块的情况下,根据上述对象的大小将上述对象存储至上述目标物理块中;其中,上述第三物理块集合中包括上述目标物理块。
在一种可能的实现方式中,参见图8,上述固态硬盘还包括:
发送单元503,用于向与上述SSD连接的存储系统发送指示信息;其中,上述指示信息包括:上述SSD中的参考活跃对象数量、上述SSD中的参考流数量以及上述SSD中物理块的大小中的一项或多项;其中,上述参考活跃对象数量用于指示并发对象的数量,上述参考流数量用于指示分流级别,上述物理块的大小用于指示并发对象的大小,上述物理块的大小为上述SSD中一个物理块的大小或多个物理块的大小。
可理解,各个单元的实现还可以对应参照图2至图4所示的方法实施例的相应描述,这里不再赘述。
可理解,图1所示的SSD中的SSD控制单元101还可用于执行本申请实施例中所描述的获取单元501和存储单元502所执行的方法,这里不再一一详述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:只读存储器(read-only memory,ROM)或随机存储存储器(random access memory,RAM)、磁碟或者光盘等各种可存储程序代码的介质。可理解,前述的存储介质还可能包括其他类型的存储介质等等,本申请不作限定。
以上所述仅为本申请的几个实施例,本领域的技术人员依据申请文件公开的可以对本申请进行各种改动或变型而不脱离本申请的精神和范围。例如本申请实施例的附图中的各个部件具体形状或结构是可以根据实际应用场景进行调整的。
Claims (18)
- 一种数据存储方法,其特征在于,包括:获取待存储的对象,所述待存储的对象包括待存储至固态硬盘SSD中的数据;根据所述对象的属性信息将所述对象存储至目标物理块中;其中,所述目标物理块为所述SSD中与所述对象的属性信息相对应的一个或多个物理块。
- 根据权利要求1所述的方法,其特征在于,所述对象的属性信息包括:所述对象的大小和所述对象的流属性中的一项或多项。
- 根据权利要求2所述的方法,其特征在于,所述根据所述对象的属性信息将所述对象存储至目标物理块中,包括:根据所述对象的大小确定第一物理块集合;根据所述对象的流属性从所述第一物理块集合中确定所述目标物理块;将所述对象存储至所述目标物理块中。
- 根据权利要求2所述的方法,其特征在于,所述根据所述对象的属性信息将所述对象存储至目标物理块中,包括:根据所述对象的流属性确定第二物理块集合;根据所述对象的大小从所述第二物理块集合中确定所述目标物理块;将所述对象存储至所述目标物理块中。
- 根据权利要求1至4任意一项所述的方法,其特征在于,在所述对象的大小大于或等于物理块的大小的三分之一的情况下,所述对象属于大对象;或在所述对象的大小小于所述物理块的大小的三分之一的情况下,所述对象属于小对象。
- 根据权利要求5所述的方法,其特征在于,所述根据所述对象的属性信息将所述对象存储至目标物理块中,包括:在所述对象属于大对象,且参考物理块的数量未超过数量阈值的情况下,根据所述对象的大小以及所述对象的流属性将所述对象存储至所述目标物理块中;其中,所述目标物理块包括所述参考物理块,所述参考物理块为所述SSD中写入部分页的物理块。
- 根据权利要求6所述的方法,其特征在于,所述方法还包括:在所述对象属于大对象,且所述参考物理块的数量超过所述数量阈值的情况下,确定用于存储大对象的物理块集合作为第三物理块集合;在所述第三物理块集合中不存在与所述对象的流属性相同的物理块的情况下,根据所述对象的大小将所述对象存储至所述目标物理块中;其中,所述第三物理块集合中包括所 述目标物理块。
- 根据权利要求2至7任意一项所述的方法,其特征在于,所述根据所述对象的属性信息将所述对象存储至目标物理块中之前,所述方法还包括:向与所述SSD连接的存储系统发送指示信息,其中,所述指示信息包括:所述SSD中的参考活跃对象数量、所述SSD中的参考流数量以及所述SSD中物理块的大小中的一项或多项;其中,所述参考活跃对象数量用于指示并发对象的数量,所述参考流数量用于指示分流级别,所述物理块的大小用于指示并发对象的大小,所述物理块的大小为所述SSD中一个物理块的大小或多个物理块的大小。
- 一种固态硬盘,其特征在于,包括:获取单元,用于获取待存储的对象,所述待存储的对象包括待存储至所述固态硬盘SSD中的数据;存储单元,用于根据所述对象的属性信息将所述对象存储至目标物理块中;其中,所述目标物理块为所述SSD中与所述对象的属性信息相对应的一个或多个物理块。
- 根据权利要求9所述的固态硬盘,其特征在于,所述对象的属性信息包括:所述对象的大小和所述对象的流属性中的一项或多项。
- 根据权利要求10所述的固态硬盘,其特征在于,所述存储单元包括:第一确定子单元,用于根据所述对象的大小确定第一物理块集合;第二确定子单元,用于根据所述对象的流属性从所述第一物理块集合中确定所述目标物理块;存储子单元,用于将所述对象存储至所述目标物理块中。
- 根据权利要求10所述的固态硬盘,其特征在于,所述存储单元包括:第三确定子单元,用于根据所述对象的流属性确定第二物理块集合;第四确定子单元,用于根据所述对象的大小从所述第二物理块集合中确定所述目标物理块;存储子单元,用于将所述对象存储至所述目标物理块中。
- 根据权利要求9至12任意一项所述的固态硬盘,其特征在于,在所述对象的大小大于或等于物理块的大小的三分之一的情况下,所述对象属于大对象;或在所述对象的大小小于所述物理块的大小的三分之一的情况下,所述对象属于小对象。
- 根据权利要求13所述的固态硬盘,其特征在于,所述存储单元,具体用于在所述对象属于大对象,且参考物理块的数量未超过数量阈 值的情况下,根据所述对象的大小以及所述对象的流属性将所述对象存储至所述目标物理块中;其中,所述目标物理块包括所述参考物理块,所述参考物理块为所述SSD中写入部分页的物理块。
- 根据权利要求14所述的固态硬盘,其特征在于,所述存储单元,具体用于在所述对象属于大对象,且所述参考物理块的数量超过所述数量阈值的情况下,确定用于存储大对象的物理块集合作为第三物理块集合;以及在所述第三物理块集合中不存在与所述对象的流属性相同的物理块的情况下,根据所述对象的大小将所述对象存储至所述目标物理块中;其中,所述第三物理块集合中包括所述目标物理块。
- 根据权利要求10至15任意一项所述的固态硬盘,其特征在于,所述固态硬盘还包括:发送单元,用于向与所述SSD连接的存储系统发送指示信息;其中,所述指示信息包括:所述SSD中的参考活跃对象数量、所述SSD中的参考流数量以及所述SSD中物理块的大小中的一项或多项;其中,所述参考活跃对象数量用于指示并发对象的数量,所述参考流数量用于指示分流级别,所述物理块的大小用于指示并发对象的大小,所述物理块的大小为所述SSD中一个物理块的大小或多个物理块的大小。
- 一种固态硬盘,其特征在于,包括:控制单元和存储单元,其中,所述控制单元和所述存储单元通过线路互联;所述存储单元,用于对象;所述控制单元,用于获取所述对象;以及根据所述对象的属性信息将所述对象存储至目标物理块中;其中,所述目标物理块为所述固态硬盘SSD中与所述对象的属性信息相对应的一个或多个物理块。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被固态硬盘的控制单元执行时,使所述控制单元执行权利要求1至8任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/093915 WO2020000480A1 (zh) | 2018-06-30 | 2018-06-30 | 数据存储方法及数据存储装置 |
CN201880095215.2A CN112352216B (zh) | 2018-06-30 | 2018-06-30 | 数据存储方法及数据存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/093915 WO2020000480A1 (zh) | 2018-06-30 | 2018-06-30 | 数据存储方法及数据存储装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020000480A1 true WO2020000480A1 (zh) | 2020-01-02 |
Family
ID=68984397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/093915 WO2020000480A1 (zh) | 2018-06-30 | 2018-06-30 | 数据存储方法及数据存储装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112352216B (zh) |
WO (1) | WO2020000480A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021253853A1 (zh) * | 2020-06-19 | 2021-12-23 | 广东浪潮智慧计算技术有限公司 | 一种数据存储方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096722A (zh) * | 2011-03-21 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 文件存储方法和装置 |
CN106326133A (zh) * | 2015-06-29 | 2017-01-11 | 华为技术有限公司 | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 |
US20180129453A1 (en) * | 2016-11-10 | 2018-05-10 | Samsung Electronics Co., Ltd. | Solid state drive device and storage system having the same |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799535A (zh) * | 2012-06-29 | 2012-11-28 | 记忆科技(深圳)有限公司 | 固态硬盘的数据处理方法及固态硬盘 |
JP2014186600A (ja) * | 2013-03-25 | 2014-10-02 | Nec Corp | 記憶装置 |
CN104834477B (zh) * | 2014-02-11 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 基于闪存的数据写入方法和装置 |
US9760281B2 (en) * | 2015-03-27 | 2017-09-12 | Intel Corporation | Sequential write stream management |
KR102060736B1 (ko) * | 2015-11-27 | 2020-02-11 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 저장 장치에 의해 데이터를 저장하기 위한 방법 및 저장 장치 |
US10216417B2 (en) * | 2016-10-26 | 2019-02-26 | Samsung Electronics Co., Ltd. | Method of consolidate data streams for multi-stream enabled SSDs |
CN107908358A (zh) * | 2017-10-25 | 2018-04-13 | 记忆科技(深圳)有限公司 | 一种降低NVMe固态硬盘写放大的方法 |
-
2018
- 2018-06-30 CN CN201880095215.2A patent/CN112352216B/zh active Active
- 2018-06-30 WO PCT/CN2018/093915 patent/WO2020000480A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096722A (zh) * | 2011-03-21 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 文件存储方法和装置 |
CN106326133A (zh) * | 2015-06-29 | 2017-01-11 | 华为技术有限公司 | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 |
US20180129453A1 (en) * | 2016-11-10 | 2018-05-10 | Samsung Electronics Co., Ltd. | Solid state drive device and storage system having the same |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021253853A1 (zh) * | 2020-06-19 | 2021-12-23 | 广东浪潮智慧计算技术有限公司 | 一种数据存储方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112352216A (zh) | 2021-02-09 |
CN112352216B (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI387975B (zh) | 用於nand快閃記憶體之邏輯超區塊映射 | |
KR102478395B1 (ko) | 통지와 함께 백그라운드 활동을 효율적으로 관리하는 ssd를 위한 메카니즘 | |
CN107885456B (zh) | 减少io命令访问nvm的冲突 | |
US8539140B2 (en) | Storage device including flash memory and capable of predicting storage device performance based on performance parameters | |
CN107967121A (zh) | 数据写入方法和存储设备 | |
JP6343438B2 (ja) | コンピュータシステム及びコンピュータシステムのデータ管理方法 | |
US9626312B2 (en) | Storage region mapping for a data storage device | |
US20150067415A1 (en) | Memory system and constructing method of logical block | |
US8769218B2 (en) | System and apparatus for flash memory data management | |
CN103384877A (zh) | 包括闪存的存储系统和存储控制方法 | |
JPWO2016135955A1 (ja) | 不揮発性メモリデバイス | |
US10776024B2 (en) | Solid state drive and data accessing method thereof | |
TW201520793A (zh) | 具有共享檔案系統之記憶體系統 | |
CN109582219A (zh) | 存储系统、计算系统及其方法 | |
US8037276B2 (en) | Computer system, storage area allocation method, and management computer | |
TW202016738A (zh) | 用來進行讀取加速之方法以及資料儲存裝置及其控制器 | |
CN111065997A (zh) | 用于存储介质的协同数据迁移 | |
CN107544754A (zh) | 一种垃圾回收法及装置 | |
CN104850354B (zh) | 信息处理系统以及存储器系统 | |
CN108932112B (zh) | 一种固态颗粒的数据读写方法、装置、设备及介质 | |
WO2020000480A1 (zh) | 数据存储方法及数据存储装置 | |
JP2021529406A (ja) | システムコントローラおよびシステムガベージコレクション方法 | |
US7032085B2 (en) | Storage system with a data sort function | |
US20120079169A1 (en) | Method for performing meta block management, and associated memory device and controller thereof | |
US20170003890A1 (en) | Device, program, recording medium, and method for extending service life of memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18923958 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18923958 Country of ref document: EP Kind code of ref document: A1 |