WO2024088150A1 - 基于开放通道固态盘的数据存储方法、装置、设备、介质及产品 - Google Patents

基于开放通道固态盘的数据存储方法、装置、设备、介质及产品 Download PDF

Info

Publication number
WO2024088150A1
WO2024088150A1 PCT/CN2023/125424 CN2023125424W WO2024088150A1 WO 2024088150 A1 WO2024088150 A1 WO 2024088150A1 CN 2023125424 W CN2023125424 W CN 2023125424W WO 2024088150 A1 WO2024088150 A1 WO 2024088150A1
Authority
WO
WIPO (PCT)
Prior art keywords
cache
data
data storage
fixed
cache area
Prior art date
Application number
PCT/CN2023/125424
Other languages
English (en)
French (fr)
Inventor
田海东
薛晓勇
王飞
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2024088150A1 publication Critical patent/WO2024088150A1/zh

Links

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

Definitions

  • the present application relates to the technical field of data storage, and in particular to a data storage method, apparatus, terminal equipment, computer storage medium and computer program product based on an open channel solid state disk.
  • OCSSD Open-Channel SSD
  • This solid-state drive device does not contain a flash memory conversion layer, it can directly hand over the flash memory physical address to the host for management, making it possible for the host to freely manage the physical location and storage method of data storage.
  • the main purpose of the present application is to provide a data storage method, apparatus, terminal device, computer storage medium and computer program product based on an open channel solid-state disk, so as to improve the write parallelism of the open channel solid-state disk to improve the data writing performance of the solid-state disk while ensuring that the data written to the solid-state disk is effectively and securely isolated.
  • the present application provides a data storage method based on an open channel solid state disk, wherein the open channel solid state disk is connected to multiple central processing units, the open channel solid state disk includes a total cache area and an underlying storage queue, the total cache area includes multiple fixed cache areas corresponding to each of the central processing units one by one;
  • the data storage method comprises:
  • Each cache data is written into each data storage channel, so that each data storage channel stores each cache data in parallel on mutually isolated data blocks according to each source application, wherein the data blocks correspond to the source applications one by one.
  • the present application also provides a data storage device based on an open channel solid-state disk, wherein the open channel solid-state disk is connected to a plurality of central processing units, the open channel solid-state disk comprises a total cache area and an underlying storage queue, the total cache area comprises a plurality of fixed cache areas corresponding one to one to each of the central processing units;
  • the data storage device comprises:
  • a first determination module is used to detect the cache state of the total cache area when receiving the data storage instruction initiated by the central processor, and determine the cache area to be moved in each of the fixed cache areas according to the cache state;
  • a second determination module is used to determine the data storage channels associated with the central processors corresponding to the cache areas to be moved in the underlying storage queue, and to determine the source application of the cache data in the cache areas to be moved;
  • a data storage module is used to write each cache data into each data storage channel, so that each data storage channel can store each cache data in parallel on mutually isolated data blocks according to each source application, wherein the data blocks correspond to the source applications one by one.
  • each functional module of the data storage device based on the open channel solid state disk of the present application implements the steps of the data storage method based on the open channel solid state disk as described above during operation.
  • the present application also provides a terminal device, characterized in that the terminal device includes: a memory, a processor, and a data storage program stored in the memory and executable on the processor, wherein the data storage program, when executed by the processor, implements the steps of the data storage method based on an open channel solid state disk as described above.
  • the present application also provides a computer storage medium, on which a data storage program is stored, and when the data storage program is executed by a processor, the steps of the data storage method based on an open channel solid state disk as described above are implemented.
  • the present application also provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, it implements the steps of the data storage method based on the open channel solid state disk as described above.
  • FIG1 is a schematic diagram of the device structure of the hardware operating environment of the terminal device involved in the embodiment of the present application.
  • FIG2 is a schematic diagram of a storage system framework using an open channel solid state disk as a storage device involved in the data storage method based on an open channel solid state disk of the present application;
  • FIG3 is a schematic diagram of an application scenario involved in an embodiment of a data storage method based on an open channel solid state disk of the present application
  • FIG4 is a schematic diagram of a step flow chart of an embodiment of a data storage method based on an open channel solid state disk of the present application
  • FIG5 is a schematic diagram of a specific data storage process involved in an embodiment of a data storage method based on an open channel solid state disk of the present application
  • FIG. 6 is a schematic diagram of the structure of each functional module in an embodiment of a data storage device based on an open channel solid state disk of the present application.
  • Figure 1 is a schematic diagram of the device structure of the hardware operating environment of the terminal device provided by the embodiment of the present application.
  • the terminal device provided by the embodiment of the present application can be a terminal device that uses an open channel solid-state disk as a storage device, and the open channel solid-state disk is connected to multiple central processing units, and the open channel solid-state disk includes a total cache area and an underlying storage queue, and the total cache area includes multiple fixed cache areas corresponding to each central processing unit.
  • the terminal device can specifically be a PC (Personal Computer), a tablet computer, a portable computer, a smart phone, etc.
  • PC Personal Computer
  • the terminal device may include: a processor 1001, such as a CPU, a communication bus 1002, a user interface 1003, a network interface 1004, and a memory 1005.
  • the communication bus 1002 is used to realize the connection and communication between these components.
  • the user interface 1003 may include a display screen (Display), an input unit such as a keyboard (Keyboard), and the user interface 1003 may also include a standard wired interface and a wireless interface.
  • the network interface 1004 may include a standard wired interface and a wireless interface (such as a WI-FI interface).
  • the memory 1005 may be a high-speed RAM memory, or a stable memory (non-volatile memory), such as a disk memory.
  • the memory 1005 may also be a storage device independent of the aforementioned processor 1001.
  • FIG. 1 does not constitute a limitation on the terminal device, and the terminal device provided in the present application may include more or fewer components than shown in the figure, or a combination of certain components, or a different arrangement of components.
  • the memory 1005 as a computer storage medium may include an operating system, a network communication module, a user interface module, and a data storage program.
  • the network interface 1004 is mainly used to connect to the backend server and perform data communication with the backend server;
  • the user interface 1003 is mainly used to connect to the client and perform data communication with the client;
  • the processor 1001 can be used to call the data storage program stored in the memory 1005 and perform the following steps:
  • Each cache data is written into each data storage channel, so that each data storage channel stores each cache data in parallel on mutually isolated data blocks according to each source application, wherein the data blocks correspond to the source applications one by one.
  • the cache state includes a cache capacity state of each of one or more of the fixed cache areas
  • the processor 1001 may be used to call the data storage program stored in the memory 1005 and perform the following steps:
  • a cache area to be moved is determined in each of the fixed cache areas according to the cache area filling capacity level corresponding to each of the cache capacity states.
  • the processor 1001 may be used to call a data storage program stored in the memory 1005, and after executing the detection of the cache status of the total cache area, further perform the following steps:
  • the data to be stored pointed to by the data storage instruction is written into the target fixed cache area corresponding to the central processing unit according to the cache status.
  • the processor 1001 may be configured to call a data storage program stored in the memory 1005 and perform the following steps:
  • the data to be stored pointed to by the data storage instruction is written into a corresponding target fixed cache area of the central processing unit among the multiple fixed cache areas.
  • the fixed cache area includes dynamic memory
  • the processor 1001 may be used to call the data storage program stored in the memory 1005 and perform the following steps:
  • the data to be stored pointed to by the data storage instruction is written into the dynamic memory of the target fixed buffer area for caching.
  • the fixed cache area also includes a non-volatile memory
  • the processor 1001 may be used to call the data storage program stored in the memory 1005, and after executing the data storage instruction to write the data to be stored into the dynamic memory of the target fixed cache area for caching, further perform the following steps:
  • the data to be stored in the dynamic memory is transferred to the non-volatile memory of the target fixed buffer area for caching.
  • the processor 1001 may be used to call a data storage program stored in the memory 1005, and after executing the step of writing each cache data into each data storage channel so that each data storage channel stores each cache data in parallel on mutually isolated data blocks according to each source application program, further perform the following steps:
  • the cache state is updated, and the to-be-stored data pointed to by the data storage instruction is written into a target fixed cache area corresponding to the central processor among the plurality of fixed cache areas according to the updated cache state.
  • SSD Solid State Disk or Solid State Drive
  • SSD gradually replaces traditional disks with its advantages of better read and write performance and stability, and becomes the preferred choice for storage.
  • SSD often uses flash nand array as its storage array, and nand flash (a flash memory) can be divided into multiple levels such as Plane, Channel, Block, Page, etc., and each level is relatively independent. Therefore, if the physical address of the flash memory can be managed directly, and the independence of each level can be used to achieve parallelism at the same level, isolation of physical areas, and effective management of storage areas, it can achieve the effect of improving read and write performance and increasing lifespan.
  • traditional SSDs do not expose the physical address of the flash memory, it is difficult to achieve such a function.
  • the Open-Channel SSD does not contain a flash translation layer, and the physical address of the flash memory is managed by the host.
  • This feature of OCSSD makes it possible for the host to freely manage the physical location and storage method of data storage. Therefore, many studies and technologies have emerged to use the features of OCSSD to improve storage performance.
  • the present application provides a data storage method based on an open channel solid-state disk, which combines the use of OCSSD to improve performance and security isolation, that is, a corresponding cache area is prepared for each central processor in the total cache area of the OCSSD, and when the data is written to the cache area in response to the processor instruction and the cache area is not full, the data is deemed to have been written; and when the data is written to the cache area but a single cache area is found to be full, the contents of multiple cache areas are queried to move the different sizes of data in multiple cache areas to the SSD flash array at the same time according to the filling degree of the data in each cache area, so that multiple channels are simultaneously written to the data block.
  • the data to be written to the data block is judged at two levels, the application and the central processor, and appropriate storage space is allocated. That is, the present application realizes that when writing data, different channels are written according to different central processors, and when writing to specific data blocks for storage, the data is written to isolated data block areas for storage according to different applications, so that the data can be effectively isolated while improving the parallelism of the storage device.
  • the various embodiments of the data storage method based on the open channel solid state disk of the present application can be applied to the terminal device using the open channel solid state disk as the storage device as described above.
  • the terminal device may include a storage system using the open channel solid state disk as the storage device as shown in FIG2, or the terminal device may also be integrated in the storage system using the open channel solid state disk as the storage device as shown in FIG2.
  • the above-mentioned storage system using open channel solid-state drives as storage devices includes direct-attached storage, network storage systems, storage area networks, distributed storage systems, cloud storage systems and other systems.
  • the storage system can of course also include various new types of storage and their systems developed based on open channel solid-state drives.
  • the above-mentioned open channel solid state disk includes a total cache area and an underlying storage queue, and the total cache area includes multiple fixed cache areas corresponding to each central processor one by one.
  • a terminal device using the data storage method based on an open channel solid state disk of the present application usually includes the following partial structure:
  • CPU Central processing unit
  • Each fixed cache area corresponds to a central processor and is used to cache all data transmitted by the storage task initiated by a single central processor.
  • Each fixed cache area is divided from the total cache area of the open channel solid state drive OCSSD.
  • each fixed cache area can be implemented by a hybrid main memory, that is, half is MRAM (Magnetoresistive Random Access Memory, a non-volatile magnetic random access memory) and half is DRAM (Dynamic Random Access Memory), and includes a capacity level mechanism.
  • MRAM Magneticoresistive Random Access Memory
  • DRAM Dynamic Random Access Memory
  • Total buffer area the sum of all fixed buffer areas, corresponding to the temporary buffer of all storage tasks. When a fixed buffer is fully loaded, the data filling degree of each fixed buffer in the entire total buffer will be queried.
  • SSD master processor used to complete the data migration of SSD, run some FTL (logical address to physical address mapping) and other functions.
  • FTL logical address to physical address mapping
  • the functions that the SSD master processor can run in the corresponding embodiment include but are not limited to: querying the cache state, maintaining the capacity level mechanism, reading the metadata of the application program and the central processor in the data, allocating the data storage channel Channel, the data block Block write task, and managing the power-off protection measures.
  • the data storage channel is a level in the flash memory array. Multiple data storage channels can be used in parallel to store data from different central processors.
  • data blocks - the Flash Nand Array Block shown in the figure is also a level in the flash memory array. Multiple data blocks form a data storage channel. The data block is the smallest erasing unit of the flash memory. Different data blocks are physically isolated from each other. Different data blocks are used to store data of different applications.
  • Figure 4 is a flowchart of the first embodiment of the data storage method based on the open channel solid state disk of the present application. It should be noted that although the logical order is shown in the flowchart, in some cases, the data storage method based on the open channel solid state disk of the present application can of course perform the steps shown or described in a different order from that here.
  • the data storage method based on the open channel solid state disk of the present application may include the following steps:
  • Step S10 upon receiving the data storage instruction initiated by the central processor, detecting the cache state of the total cache area, and determining the cache area to be moved in each of the fixed cache areas according to the cache state;
  • the open channel solid state disk used in the terminal device receives a data storage instruction initiated by one or more processors among the multiple central processors through the main control, it immediately detects the cache status of the total cache area of the open channel solid state disk at the current moment. Then, based on the data filling degree of each fixed cache area corresponding to each central processor in the total cache area identified by the cache status, it determines one or more cache areas to be moved in each fixed cache area at the current moment, which need to further move cache data to the back-end data block of the solid state disk.
  • Step S20 determining the data storage channels associated with the central processors corresponding to the cache areas to be moved in the underlying storage queue, and determining the source application of the cache data in the cache areas to be moved.
  • the open channel solid-state disk used in the terminal device receives a data storage instruction initiated by one or more central processing units through the main control, it detects and determines that one or more cache areas to be moved whose cache data needs to be moved to the back-end data block of the solid-state disk at the current moment, and then immediately further determines the central processors corresponding to the one or more cache areas to be moved, and the data storage channels associated with them in the underlying storage queue of the solid-state disk, and synchronously or asynchronously determines the source application of the cache data in the one or more cache areas to be moved.
  • each fixed cache area corresponding to a different central processor in the total cache area has a certain capacity
  • a certain amount of cache data can be cached in the one or more solid-state cache areas, and the cache data can be the master control of the open channel solid-state disk, which pre-executes the data storage task initiated by the corresponding central processor and transmits the data written to the solid-state cache area.
  • Step S30 writing each cache data into each data storage channel, so that each data storage channel can store data in a specific manner.
  • each of the cache data is stored in parallel on mutually isolated data blocks, wherein the data blocks correspond to the source applications one by one.
  • the open channel solid-state disk used in the terminal device after determining the above-mentioned one or more data storage channels and the above-mentioned one or more source applications through the main control, further writes the cache data in one or more cache areas to be moved into the data storage channels corresponding to the cache areas to be moved, so that one or more data storage channels each write the cache data to the back-end solid-state disk in parallel according to the source application of the cache data received by themselves, and store it on the data blocks corresponding to the source application one by one.
  • the open channel solid-state disk used by the above-mentioned terminal device has divided the three central processors of the terminal device into solid-state cache areas 1 to 3 corresponding to each central processor in the total cache area.
  • the master control of the open channel solid-state disk receives the data storage instruction initiated by processor 1 among the three central processors, it immediately detects the cache status of the total cache of the solid-state disk, and then determines, based on the data filling degree of each of the solid-state cache areas 1 to 3 identified by the cache status, that solid-state cache area 1 and solid-state cache area 2 among the solid-state cache areas 1 to 3 are the cache areas to be moved that need to further move the cached data to the data blocks at the back end of the solid-state disk at the current moment (for example, the master controls of the caches of solid-state cache area 1 and solid-state cache area 2 respectively respond in advance to the data storage tasks initiated by processor 1 and processor 2 respectively, and occupy all or most of the space to store the data).
  • the master control of the open channel solid state disk can further determine the processor 1 corresponding to the solid state cache area 1 and the processor 2 corresponding to the solid state cache area 2, and the data storage channels associated with each other in the underlying storage queue of the solid state disk, assuming that they are the data storage channel Channel 1 and the data storage channel Channel 2, respectively, and determine the source application program APP1 of the cache data 1 cached by the solid state cache area 1, and the source application program APP2 of the cache data 2 cached by the solid state cache area 2.
  • the master control of the open channel solid state disk can write the cache data 1 to the data storage channel Channel 1, and write the cache data 2 to the data storage channel Channel 2, and the data storage channel Channel 1 and the data storage channel Channel 2 can write the cache data 1 and the cache data 2 to the data block 1 corresponding to the source application program APP1 and the data block 2 corresponding to the source application program APP2 in parallel for storage, respectively, and the data block 1 and the data block 2 are physically isolated from each other.
  • the present application is based on the data storage method of the open channel solid state disk.
  • the master control of the open channel solid state disk used in the terminal device receives the data storage instruction initiated by one or more processors among the multiple central processors, the cache state of the total cache area of the open channel solid state disk at the current moment is immediately detected. Then, based on the data filling degree of each fixed cache area corresponding to each central processor in the total cache area identified by the cache state, one or more cache areas to be moved in each fixed cache area at the current moment need to further move the cache data to the back-end data block of the solid state disk.
  • the master control of the open channel solid state disk immediately further determines the data storage channels associated with the central processors corresponding to each of the one or more cache areas to be moved in the underlying storage queue of the solid state disk, and synchronously or asynchronously determines the source application of the cache data in the one or more cache areas to be moved.
  • the master control of the open channel solid state disk will write the cache data in one or more cache areas to be moved into the data storage channels corresponding to the cache areas to be moved, so that one or more data storage channels will write the cache data to the back-end solid state disk in parallel according to the source application of the cache data received by themselves.
  • the data is stored on the dynamic disk in data blocks that correspond one to one with the source application.
  • the present application adopts separate fixed cache areas for different central processors, so that different threads corresponding to each processor can use different caches for data storage, and the cache area corresponding to the processor can be directly accessed during thread processing, without the need for arbitration and other behaviors; and, the present application corresponds to each cache area by corresponding to a specific data storage channel, that is, a fixed flash array channel, so that when the data in the cache area is written to a specific data block on the back end of the solid-state disk, the cache area data can be written and stored in parallel from all channels, making full use of the bandwidth and internal parallelism of the flash array, and reducing the time spent on moving data to the data block.
  • a specific data storage channel that is, a fixed flash array channel
  • the present application also stores the cache area data in parallel on mutually isolated data blocks according to the source application of each data through each data storage channel, thereby not only avoiding storage competition between different applications, but also avoiding the storage problem of different application data caused by the erasure and write amplification problems of the storage medium itself. That is, the present application realizes that while improving the write parallelism of the open channel solid-state disk to improve the data writing performance of the solid-state disk, the data written to the solid-state disk is effectively and securely isolated.
  • the cache status of the total cache area of the open channel solid-state disk at the current moment includes the cache capacity status of each of one or more fixed cache areas.
  • the cache capacity status of the solid-state cache area directly identifies the data filling status of the solid-state cache area, that is, it identifies the occupancy status of the data already cached in the solid-state cache area with respect to the total capacity of the solid-state cache area.
  • step of "determining the cache area to be moved in each of the fixed cache areas according to the cache state" in the above step S10 may include:
  • Step S101 detecting whether each cache capacity state meets a preset capacity sufficiency condition
  • the master control of the open channel solid-state disk used by the terminal device determines that one or more of the multiple fixed cache areas need to move the cached data to the cache area to be moved of the back-end data block of the solid-state disk at the current moment based on the cache capacity status of each fixed cache area in the total cache area of the solid-state disk. It first detects whether the cache capacity status of each of the multiple fixed cache areas meets the preset capacity sufficiency condition.
  • the master control of the open channel solid-state disk used by the terminal device can pre-configure the data filling capacity level of each fixed cache area.
  • the master control of the open channel solid-state disk can set four data filling capacity levels of empty, low, high and full based on how much of the capacity of the fixed cache area is occupied by data.
  • empty means that there is no data in the fixed cache area
  • low means that there is data in the fixed cache area but the data occupies less than half of the cache area capacity
  • high means that there is data in the fixed cache area and the data occupies half or more of the cache area capacity but the cache area is not full
  • full means that the data in the fixed cache area has filled the entire capacity of the cache area.
  • the master controller of the open channel solid-state drive can further set "as long as the data filling capacity level of the fixed cache area corresponding to the fixed cache area is not the full level", that is, the cache capacity status of the fixed cache area indicates that the data cached in the fixed cache area does not fill the entire capacity of the cache area, the cache capacity status of the fixed cache area is considered to meet the capacity sufficient conditions.
  • Step S102 If not, fill the buffer area with the capacity level corresponding to each buffer capacity state according to each buffer capacity state.
  • the cache area to be moved is determined in the fixed cache area.
  • the master control of the open channel solid-state disk used by the terminal device detects whether the cache capacity status of each of the multiple fixed cache areas meets the preset capacity sufficiency condition, it detects that the cache capacity status of one or more target cache areas among the multiple fixed cache areas does not meet the above-mentioned capacity sufficiency condition, that is, the data cached in the one or more target cache areas occupies the entire capacity of the cache area.
  • the master control immediately determines that at the current moment, there is a cache area among the multiple fixed cache areas that needs to move the cached data to the data block at the back end of the solid-state disk. Therefore, the master control further determines one or more cache areas to be moved among the multiple fixed cache areas according to the cache area filling capacity levels corresponding to the cache capacity status of each of the multiple fixed cache areas.
  • the master controller of the open channel solid-state disk used by the terminal device can choose to set the cache capacity status of the fixed cache area, and the corresponding cache area filling capacity level is high and/or full, and determine them as the cache area to be moved that currently needs to move the cache data to the data block.
  • the data storage method based on the open channel solid state disk of the present application may further include:
  • Step S40 writing the data to be stored pointed to by the data storage instruction into the target fixed cache area corresponding to the central processor according to the cache status.
  • the master control of the open channel solid-state disk used by the terminal device can, in addition to determining the cache area to be moved according to the cache status of the above-mentioned total cache area of the solid-state disk and moving the cache data in the cache area to be moved to the data block at the back end of the solid-state disk, further respond to the data storage instruction initiated by the above-mentioned central processing unit according to the cache status to write the data to be stored pointed to by the data storage instruction into the target fixed cache area that uniquely corresponds to the central processing unit among multiple fixed cache areas for caching.
  • step S40 may include:
  • Step S401 if it is detected that each of the cache capacity states meets the sufficient capacity condition, the data to be stored pointed to by the data storage instruction is written into a corresponding target fixed cache area of the central processing unit among the multiple fixed cache areas.
  • the master control of the open channel solid-state disk used by the terminal device detects whether the cache capacity status of each of the multiple fixed cache areas meets the preset capacity sufficiency condition, and detects that the cache capacity status of each of the multiple fixed cache areas can meet the above-mentioned capacity sufficiency condition, that is, the data cached in each of the multiple fixed cache areas does not fill the entire capacity of the cache area, then the master control immediately determines that at the current moment, there is no cache area in the multiple fixed cache areas that needs to move the cached data to the data block at the back end of the solid-state disk.
  • the master control further responds to the data storage instruction initiated by the above-mentioned central processing unit to directly write the data to be stored pointed to by the data storage instruction to the central processing unit
  • the data is cached in the unique corresponding target fixed cache area among the multiple fixed cache areas.
  • the open channel solid-state disk used by the above-mentioned terminal device has divided a solid-state cache area 1 to 3 corresponding to each central processor in the total cache area for each of the three central processors of the terminal device.
  • the master control of the open channel solid-state disk receives a data storage instruction initiated by processor 1 among the three central processors, it immediately detects the cache status of the total cache of the solid-state disk, and then determines that there is no cache area to be moved in the solid-state cache areas 1 to 3 that needs to further move the cached data to the data blocks at the back end of the solid-state cache based on the data filling degree of each of the solid-state cache areas 1 to 3 identified by the cache status (that is, the data cached in each of the solid-state cache areas 1 to 3 does not fill the cache area).
  • the master control of the open channel solid-state disk can directly respond to the data initiated by processor 1.
  • the storage instruction is used to directly write the to-be-stored data a pointed to by the data storage instruction into the only corresponding fixed cache area 1 of the processor 1 among the solid-state cache areas 1 to 3 for caching.
  • the data storage method based on the open channel solid-state disk of the present application adopts separate fixed cache areas for different central processing units, so that different threads corresponding to each processor can use different caches for data storage, and the cache area corresponding to the processor can be directly accessed during thread processing without the need for arbitration, thereby achieving a certain degree of parallelism between threads and reducing the consumption of thread access processing.
  • the multiple fixed cache areas divided and set one by one for the multiple central processors in the total cache area of the open channel solid state disk include: dynamic memory DRAM.
  • the above step of "writing the to-be-stored data pointed to by the data storage instruction into the target fixed cache area corresponding to the central processor in one or more of the fixed cache areas" may include:
  • Step a determining a target fixed cache area corresponding to the central processor in one or more fixed cache areas
  • Step b writing the data to be stored pointed to by the data storage instruction into the dynamic memory of the target fixed cache area for caching.
  • the master control of the open channel solid-state disk used by the terminal device in response to the data storage instruction initiated by the central processing unit to write the data to be stored pointed to by the data storage instruction into the total cache of the solid-state disk, and the fixed cache area uniquely corresponding to the central processing unit, the master control first determines the target fixed cache area uniquely corresponding to the central processing unit among the multiple fixed cache areas of the total cache, and then, the master control further writes the data to be stored into the dynamic memory DRAM contained in the target fixed cache area for caching.
  • the plurality of fixed cache areas of the total cache area of the open channel solid state disk further include a non-volatile memory MRAM; based on this, after the above step b, the data storage method based on the open channel solid state disk of the present application may further include:
  • Step c when a device power failure event is detected, the data to be stored in the dynamic memory is transferred to the non-volatile memory of the target fixed cache area for caching.
  • the open channel solid state disk used by the terminal device adopts a hybrid main memory configuration to form multiple solid state cache areas corresponding to each central processor, that is, each solid state cache area corresponding to the central processor includes dynamic memory DRAM and non-volatile memory MRAM.
  • each solid state cache area corresponding to the central processor includes dynamic memory DRAM and non-volatile memory MRAM.
  • the present application is based on the data storage method of the open channel solid state disk, by using a hybrid main memory for multiple solid state cache areas in the total cache area of the solid state disk, thereby combining the hybrid main memory and the above-mentioned capacity level mechanism to write data.
  • the process of writing data to the storage device is controlled, which effectively reduces the risk of power failure in the large cache area, balances the performance and cost of the storage device, reduces unnecessary write processes, and strengthens the predictability of open channel SSDs.
  • the data storage method based on the open channel solid state disk of the present application may further include:
  • Step S50 updating the cache state, and writing the to-be-stored data pointed to by the data storage instruction into a target fixed cache area corresponding to the central processor among the plurality of fixed cache areas according to the updated cache state.
  • the master control of the open channel solid-state disk adopted by the terminal device after moving the cache data in the above-mentioned one or more cache areas to be moved to the data block at the back end of the solid-state disk for storage, further updates the cache status of the total cache area of the solid-state disk, thereby continuing to follow the process described in the above-mentioned steps S40, step a, step b and step c based on the updated cache status, and writes the data to be stored pointed to by the data storage instruction initiated by the above-mentioned central processing unit into the target fixed cache area that uniquely corresponds to the central processing unit in multiple fixed cache areas for caching.
  • the master control of the open channel solid-state disk used by the terminal device has pre-allocated a corresponding fixed cache area for each central processor of the mobile terminal. Based on this, before the master control moves the data in the fixed cache area to the flash memory array of the solid-state disk, it further judges the data to be written at the application and central processor levels and allocates appropriate space. When the master control responds to the data storage instruction to write the data to the data block, that is, according to the different central processors, the data is written to mutually isolated areas at the application level through different data storage channels. In this way, the stored data can be effectively isolated while improving the parallelism of the storage device. Based on this, in some feasible embodiments, the master control of the open channel solid-state disk used by the terminal device can specifically adopt the following process to implement the above technical concept, namely:
  • the master controller allocates fixed cache areas of the same or different sizes to each central processing unit CPU in the total cache area of the open channel solid-state disk according to the processing performance of the central processing unit CPU, and also allocates one or more corresponding data storage channels to each central processing unit CPU in the underlying storage array of the solid-state disk;
  • a central processing unit (CPU) of the terminal device initiates a data storage instruction based on the data storage requirement
  • the master controller Before the master controller responds to the data storage instruction to perform the write operation on the data to be stored pointed to by the instruction, it queries the cache status of the total cache area of the open channel solid-state disk to determine the data post-write status and updates it. If the master controller determines that the data cache status of the target fixed cache area corresponding to the central processing unit CPU that currently initiates the data storage instruction is not FULL, it determines that the current writing of the data to be stored to the target fixed cache area has been successful;
  • the master controller determines that the data cache state of the above-mentioned target fixed cache area is FULL, it will suspend writing the data to be stored into the cache area, and move the cached data in the cache area into the data block at the back end of the solid-state disk. That is, the master controller queries the capacity level of each fixed cache area corresponding to each central processing unit CPU in the total cache area, and prepares to write half of the cache area size data in one or more fixed cache areas with a capacity level above high into the data storage channel corresponding to the one or more fixed cache areas;
  • the master control queries the information carried by the data that needs to be moved to the data block to determine the source of the data
  • the application APP moves data to the underlying storage array of the solid-state disk through multiple channels, and stores the data from different source applications APP in different data blocks corresponding to the source application APP, while the data from different central processors will be stored in different data storage channels Channel.
  • the layer of storage device data storage can also be replaced by the open channel solid state disk, such as replacing the data storage channel Channel with the Plane layer in the memory, and replacing the data block Block with the channel Channel layer, thereby achieving similar storage isolation and storage device parallelism acceleration.
  • the data storage method based on the open channel solid state disk of the present application adopts separate fixed cache areas for different central processors, so that different threads corresponding to each processor can use different caches for data storage, and the cache area corresponding to the processor can be directly accessed during thread processing, without the need for arbitration and other behaviors; and, the present application corresponds to each cache area by corresponding to a specific data storage channel, that is, a fixed flash array channel, so that when the data in the cache area is written to a specific data block on the back end of the solid state disk, the cache area data can be written and stored in parallel from all channels downward, making full use of the bandwidth and internal parallelism of the flash array, and reducing the time spent on moving data to the data block.
  • a specific data storage channel that is, a fixed flash array channel
  • the present application also stores the cache area data in parallel on mutually isolated data blocks according to the source application of each data through each data storage channel, thereby not only avoiding storage competition between different applications, but also avoiding the storage problem of different application data caused by the erasure and write amplification problems of the storage medium itself. That is, the present application realizes that while improving the write parallelism of the open channel solid state disk to improve the data writing performance of the solid state disk, the data written to the solid state disk is ensured to be effectively and securely isolated.
  • the present application also provides a data storage device based on an open channel solid state disk, wherein the open channel solid state disk is connected to a plurality of central processing units, the open channel solid state disk comprises a total cache area and an underlying storage queue, the total cache area comprises a plurality of fixed cache areas corresponding one to one to each of the central processing units;
  • the data storage device comprises:
  • a first determination module 10 is used to detect the cache state of the total cache area when receiving the data storage instruction initiated by the central processor, and determine the cache area to be moved in each of the fixed cache areas according to the cache state;
  • the second determination module 20 is used to determine the data storage channels associated with the central processors corresponding to the cache areas to be moved in the underlying storage queue, and to determine the source application of the cache data in the cache areas to be moved;
  • the data storage module 30 is used to write each cache data into each data storage channel, so that each data storage channel can store each cache data in parallel on mutually isolated data blocks according to each source application, wherein the data blocks correspond one-to-one to the source applications.
  • the cache state includes a cache capacity state of each of one or more of the fixed cache areas; the first determination module 10 includes:
  • a cache capacity detection unit used to detect whether each of the cache capacity states meets a preset capacity sufficiency condition
  • the moving determination unit is used to fill the capacity level of the cache area corresponding to each of the cache capacity states, The cache area to be moved is determined in the fixed cache area.
  • the data storage module 30 of the data storage device based on the open channel solid state disk of the present application is also used to write the data to be stored pointed to by the data storage instruction to the target fixed cache area corresponding to the central processor according to the cache state.
  • the data storage module 30 is also used to write the to-be-stored data pointed to by the data storage instruction into the target fixed cache area corresponding to the central processing unit in the multiple fixed cache areas if it is detected that each of the cache capacity states meets the sufficient capacity condition.
  • the fixed cache area includes dynamic memory
  • the data storage module 30 includes:
  • the first storage unit is used to determine the target fixed cache area corresponding to the central processor in one or more fixed cache areas; and write the to-be-stored data pointed to by the data storage instruction into the dynamic memory of the target fixed cache area for caching.
  • the fixed cache area also includes a non-volatile memory
  • the data storage module 30 further includes:
  • the second storage unit is used to transfer the data to be stored in the dynamic memory to the non-volatile memory of the target fixed cache area for caching when a power-off event of the device is detected.
  • the data storage module 30 of the data storage device based on the open channel solid-state disk of the present application is also used to update the cache status, and write the data to be stored pointed to by the data storage instruction to the target fixed cache area corresponding to the central processing unit in the multiple fixed cache areas according to the updated cache status.
  • the present application also provides a computer storage medium having a data storage program stored thereon.
  • the data storage program is executed by a processor, the steps of the data storage method based on an open channel solid state disk as described in any of the above embodiments are implemented.
  • the present application also provides a computer program product, which includes a computer program.
  • a computer program product which includes a computer program.
  • the steps of the data storage method based on an open channel solid state disk as described in any of the above embodiments are implemented.

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

基于开放通道固态盘的数据存储方法、装置、设备、介质及产品,涉及数据存储技术领域。开放通道固态盘连接有多个中央处理器,开放通道固态盘包括总缓存区和底层存储队列,总缓存区包括多个与各中央处理器对应的固定缓存区;方法包括:在接收到中央处理器发起的数据存储指令时,检测总缓存区的缓存状态以确定各固定缓存区中的待搬移缓存区;确定各待搬移缓存区对应的中央处理器各自在底层存储队列中关联的数据存储通道;将各待搬移缓存区中的缓存数据写入各数据存储通道,以供各数据存储通道按照各缓存数据对应的来源应用程序,将各缓存数据并行存储在相互隔离的数据块上。

Description

基于开放通道固态盘的数据存储方法、装置、设备、介质及产品
相关申请
本申请要求于2022年10月25号申请的、申请号为202211310527.5的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据存储技术领域,尤其涉及一种基于开放通道固态盘的数据存储方法、装置、终端设备、计算机存储介质及计算机程序产品。
背景技术
现如今,OCSSD(Open-Channel SSD,开放通道固态盘)作为一种新型的固态盘设备,因为该固态盘设备不包含闪存转换层,能够将闪存物理地址直接交给主机管理,从而使得主机自由管理数据存储的物理位置和存储方式成为了现实。
然而,在现有利用OCSSD的特性来提升存储性能的研究中,始终无法同时兼顾固态盘写入性能的提升和对写入数据进行安全隔离。
发明内容
本申请的主要目的在于提供一种基于开放通道固态盘的数据存储方法、装置、终端设备、计算机存储介质及计算机程序产品,实现在提升开放通道固态盘写并行性以提升固态盘数据写入性能的同时,确保写入固态盘的数据达成有效地安全隔离。
为实现上述目的,本申请提供一种基于开放通道固态盘的数据存储方法,所述开放通道固态盘连接有多个中央处理器,所述开放通道固态盘包括总缓存区和底层存储队列,所述总缓存区包括多个与各所述中央处理器一一对应的固定缓存区;
所述数据存储方法包括:
在接收到所述中央处理器发起的数据存储指令时,检测所述总缓存区的缓存状态,并根据所述缓存状态确定各所述固定缓存区中的待搬移缓存区;
确定各所述待搬移缓存区分别对应的中央处理器各自在所述底层存储队列中关联的数据存储通道,并确定各所述待搬移缓存区中的缓存数据的来源应用程序;
将各所述缓存数据写入各所述数据存储通道,以供各所述数据存储通道按照各所述来源应用程序,分别将各所述缓存数据并行存储在相互隔离的数据块上,其中,所述数据块与所述来源应用程序一一对应。
此外,为实现上述目的,本申请还提供一种基于开放通道固态盘的数据存储装置,所述开放通道固态盘连接有多个中央处理器,所述开放通道固态盘包括总缓存区和底层存储队列,所述总缓存区包括多个与各所述中央处理器一一对应的固定缓存区;
所述数据存储装置包括:
第一确定模块,用于在接收到所述中央处理器发起的数据存储指令时,检测所述总缓存区的缓存状态,并根据所述缓存状态确定各所述固定缓存区中的待搬移缓存区;
第二确定模块,用于确定各所述待搬移缓存区分别对应的中央处理器各自在所述底层存储队列中关联的数据存储通道,并确定各所述待搬移缓存区中的缓存数据的来源应用程序;
数据存储模块,用于将各所述缓存数据写入各所述数据存储通道,以供各所述数据存储通道按照各所述来源应用程序,分别将各所述缓存数据并行存储在相互隔离的数据块上,其中,所述数据块与所述来源应用程序一一对应。
其中,本申请基于开放通道固态盘的数据存储装置的各功能模块在运行时实现如上所述的基于开放通道固态盘的数据存储方法的步骤。
本申请还提供一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据存储程序,所述数据存储程序被所述处理器执行时实现如上所述的基于开放通道固态盘的数据存储方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机存储介质,所述计算机存储介质上存储有数据存储程序,所述数据存储程序被处理器执行时实现如上所述的基于开放通道固态盘的数据存储方法的步骤。
此外,为实现上述目的,本申请还提供计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上所述的基于开放通道固态盘的数据存储方法的步骤。
附图说明
图1为本申请实施例方案涉及的终端设备硬件运行环境的设备结构示意图;
图2为本申请基于开放通道固态盘的数据存储方法所涉及使用开放通道固态盘作为存储设备的存储系统框架示意图;
图3为本申请基于开放通道固态盘的数据存储方法一实施例涉及的应用场景示意图;
图4为本申请基于开放通道固态盘的数据存储方法一实施例的步骤流程示意图;
图5为本申请基于开放通道固态盘的数据存储方法一实施例涉及的具体数据存储流程示意图;
图6为本申请基于开放通道固态盘的数据存储装置一实施例中各功能模块的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,图1为本申请实施例方案所提供终端设备的硬件运行环境的设备结构示意图。需要说明的是,本申请实施例所提供终端设备可以是采用开放通道固态盘作为存储设备的终端设备,开放通道固态盘连接有多个中央处理器,且该开放通道固态盘包括总缓存区和底层存储队列,该总缓存区包括多个与各中央处理器一一对应的固定缓存区。此外,终端设备具体可以是PC(Personal Computer,个人计算机)、平板电脑、便携计算机、智能手机等等。
如图1所示,该终端设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对终端设备的限定,本申请提供的终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据存储程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的数据存储程序,并执行以下步骤:
在接收到所述中央处理器发起的数据存储指令时,检测所述总缓存区的缓存状态,并根据所述缓存状态确定各所述固定缓存区中的待搬移缓存区;
确定各所述待搬移缓存区分别对应的中央处理器各自在所述底层存储队列中关联的数据存储通道,并确定各所述待搬移缓存区中的缓存数据的来源应用程序;
将各所述缓存数据写入各所述数据存储通道,以供各所述数据存储通道按照各所述来源应用程序,分别将各所述缓存数据并行存储在相互隔离的数据块上,其中,所述数据块与所述来源应用程序一一对应。
在一实施方式中,所述缓存状态包括一个或者多个所述固定缓存区各自的缓存容量状态;
处理器1001可以用于调用存储器1005中存储的数据存储程序,并执行以下步骤:
检测各所述缓存容量状态是否均符合预设的容量充足条件;
若否,则根据各所述缓存容量状态对应的缓存区填充容量等级,在各所述固定缓存区中确定待搬移缓存区。
在一实施方式中,处理器1001可以用于调用存储器1005中存储的数据存储程序,在执行检测所述总缓存区的缓存状态之后,还执行以下步骤:
根据所述缓存状态向所述中央处理器对应的目标固定缓存区写入所述数据存储指令指向的待存储数据。
在一实施方式中,处理器1001可以用于调用存储器1005中存储的数据存储程序,并执行以下步骤:
若检测到各所述缓存容量状态均符合所述容量充足条件,则将所述数据存储指令指向的待存储数据,写入所述中央处理器在多个所述固定缓存区中对应的目标固定缓存区。
在一实施方式中,所述固定缓存区包括动态内存;
处理器1001可以用于调用存储器1005中存储的数据存储程序,并执行以下步骤:
确定所述中央处理器在一个或者多个所述固定缓存区中对应的目标固定缓存区;
将所述数据存储指令指向的待存储数据,写入所述目标固定缓存区的动态内存进行缓存。
在一实施方式中,所述固定缓存区还包括非易失性内存;
处理器1001可以用于调用存储器1005中存储的数据存储程序,在执行将所述数据存储指令指向的待存储数据,写入所述目标固定缓存区的动态内存进行缓存之后,还执行以下步骤:
在监测到设备掉电事件时,将所述动态内存中的待存储数据转移至所述目标固定缓存区的非易失性内存进行缓存。
在一实施方式中,处理器1001可以用于调用存储器1005中存储的数据存储程序,在执行将各所述缓存数据写入各所述数据存储通道,以供各所述数据存储通道按照各所述来源应用程序,分别将各所述缓存数据并行存储在相互隔离的数据块上之后,还执行以下步骤:
对所述缓存状态进行更新,并根据更新后的缓存状态向所述中央处理器在多个所述固定缓存区中对应的目标固定缓存区写入所述数据存储指令指向的待存储数据。
基于上述的硬件结构,提出本申请基于开放通道固态盘的数据存储方法的整体构思。
本申请实施例中,SSD(Solid State Disk或Solid State Drive,固态硬盘)凭借着其更加出色的读写性能和稳定性等优势逐渐取代传统磁盘,成为了存储的优先选择。SSD常用闪存阵列(flash nand array)作为其存储阵列,而nand flash(一种闪存存储器)内可以分为Plane、Channel、Block、Page等多个层次,各个层次相对独立,因此如果可以直接对闪存的物理地址进行管理,利用各个层次内的独立性,实现同一层次的并行、物理区域的隔离、存储区域的有效管理等功能,就可以到达提升读写性能、增加寿命等效果。但由于传统SSD并不会暴露闪存的物理地址,所以难以实现这样的功能。
而开放通道固态盘(Open-Channel SSD)作为一种新型的固态盘设备,区别于传统的固态盘设备,其不包含闪存转换层,将闪存物理地址交给主机管理。这种OCSSD的特性使主机自由地管理数据存储的物理位置和存储方式成为现实。因此,出现了许多利用OCSSD特性来提升存储性能的研究和技术。
然而,时下常见的关于利用OCSSD进行数据存储的技术在性能提升和安全隔离的考虑上往往不够周全,要么在进行性能提升的同时,忽略了安全隔离和性能隔离的重要性,使得SSD在使用时的错误率上升,要么单纯的通过单独对应用进行的存储空间的分配,完成了性能隔离和安全隔离,但性能本身并没有大的提升,实际上并没有充分发挥OCSSD的特 性。总之,目前并不存在一种一体化的、方便实施的、写入性能提升与安全隔离相结合的SSD设计策略和方法,即,在现有利用OCSSD的特性来提升存储性能的研究中,始终无法同时兼顾固态盘写入性能的提升和对写入数据进行安全隔离。
针对上述现象,本申请提供一种基于开放通道固态盘的数据存储方法,该方法将使用OCSSD提升性能和安全隔离相结合,即,在OCSSD的总缓存区当中为每个中央处理器准备一个对应的缓存区,当响应处理器指令将数据写入缓存区且该缓存区未满时视为数据已经写入;而在将数据写入缓存区但发现单个缓存区满的时候,即查询多个缓存区的内容以根据各缓存区中数据的填充程度,同时搬移多个缓存区的不同大小数据到SSD闪存阵列中,从而进行多个通道同时将数据写入数据块。同时,还对将写入到数据块的数据进行应用程序与中央处理器两个级别的判断并分配合适的存储空间。即,本申请实现了在数据写入时根据中央处理器的不同对应写入不同的通道,而在写入到具体数据块进行存储时根据应用程序的不同将数据写入相互隔离的数据块区域进行存储,从而可以在提升存储设备并行度的同时对数据进行有效隔离。
基于上述本申请基于开放通道固态盘的数据存储方法的整体构思,进一步提出本申请基于开放通道固态盘的数据存储方法的各个实施例。
本申请基于开放通道固态盘的数据存储方法的各个实施例可以应用于如上述使用开放通道固态盘作为存储设备的终端设备。例如,该终端设备可以包括如图2所示使用开放通道固态盘作为存储设备的存储系统,或者该终端设备还可以集成在如图2所示的使用开放通道固态盘作为存储设备的存储系统中。
上述使用开放通道固态盘作为存储设备的存储系统包括直连式存储、网络存储系统、存储区域网络、分布式存储系统、云存储系统等系统,此外,该存储系统当然还可以还包括在开放通道固态盘基础上开发的各种新型存储器及其系统。
在一实施方式中,在本申请基于开放通道固态盘的数据存储方法的各个实施例中,上述的开放通道固态盘包括总缓存区和底层存储队列,该总缓存区包括多个与各中央处理器一一对应的固定缓存区。
如图3所示,应用本申请基于开放通道固态盘的数据存储方法的终端设备常包括如下所示的部分结构:
101中央处理器(central processing unit,CPU)——图示CPU1、CPU2至CPU N,用于处理应用线程,将对应的开放通道固态盘OCSSD存储指令(如带物理地址的读写指令)发送到存储系统中发起存储任务,以将数据搬运到缓存区。
102固定缓存区——图示缓存区1、缓存区2至缓存区N,每个固定缓存区对应一个中央处理器,用于缓存单个中央处理器发起的存储任务所传输的所有数据。各个固定缓存区由开放通道固态盘OCSSD的总缓存区分割而来。且每个固定缓存区可以由混合主存实现,即,一半为MRAM(Magnetoresistive Random Access Memory,是一种非易失性(Non-Volatile)的磁性随机存储器),一半为DRAM(Dynamic Random Access Memory,动态随机存取存储器),并且包含容量等级机制。
103总缓存区,所有固定缓存区的汇总,对应于所有存储任务的临时缓存,当单个固 定缓存区满载后,将对整个总缓存区中的各个固定缓存区进行数据填充程度的查询。
104SSD主控处理器,用于完成SSD的数据搬移,运行部分FTL(逻辑地址到物理地址的映射)等功能。此外,SSD主控处理器在对应实施例中能够运行的功能包括但不限于:查询缓存区状态、维护容量等级机制,读取数据中应用程序、中央处理器的元数据,分配数据存储通道Channel、数据块Block写入任务,管理掉电保护措施。
105数据存储通道——图示的Flash Nand Array Channel,数据存储通道Channel是闪存存储阵列中的一个层次,多个数据存储通道Channel之间可以并行以存储不同中央处理器的数据。
106数据块——图示的Flash Nand Array Block,同样为闪存存储阵列中的一个层次,多个数据块Block组成一个数据存储通道Channel,数据块Block是闪存存储器的最小擦除单元,不同数据块Block相互间存在物理隔离,不同的数据块Block用于存储不同应用程序的数据。
基于此,提出本申请基于开放通道固态盘的数据存储方法的第一实施例。
如图4所示,图4为本申请基于开放通道固态盘的数据存储方法的第一实施例的流程示意图。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,本申请基于开放通道固态盘的数据存储方法当然也可以以不同于此处的顺序执行所示出或描述的步骤。
在本申请基于开放通道固态盘的数据存储方法的第一实施例中,本申请基于开放通道固态盘的数据存储方法,可以包括如下步骤:
步骤S10,在接收到所述中央处理器发起的数据存储指令时,检测所述总缓存区的缓存状态,并根据所述缓存状态确定各所述固定缓存区中的待搬移缓存区;
在本实施例中,终端设备中使用的开放通道固态盘,在通过主控接收到多个中央处理器中一个或者多个处理器发起的数据存储指令时,立即检测该开放通道固态盘的总缓存区在当前时刻的缓存状态。然后,进一步基于该缓存状态所标识的该总缓存区当中分别与各中央处理器对应的各固定缓存区的数据填充程度,确定当前时刻各固定缓存区中需要进一步将缓存数据向固态盘后端数据块进行搬移的一个或者多个待搬移缓存区。
步骤S20,确定各所述待搬移缓存区分别对应的中央处理器各自在所述底层存储队列中关联的数据存储通道,并确定各所述待搬移缓存区中的缓存数据的来源应用程序。
在本实施例中,终端设备中使用的开放通道固态盘,在通过主控于接收到一个或者多个中央处理器所发起数据存储指令时,检测确定出当前时刻需要向固态盘后端数据块搬移缓存数据的一个或者多个待搬移缓存区之后,立即进一步确定该一个或者多个待搬移缓存区各自对应的中央处理器,分别在该固态盘底层存储队列当中所关联的数据存储通道,并,同步或者异步的确定该一个或者多个待搬移缓存区当中的缓存数据的来源应用程序。
在本实施例中,由于总缓存区中各个分别与不同中央处理器对应的固定缓存区均具备一定容量,因此,该一个或者多个固态缓存区当中可以缓存有一定量的缓存数据,而该缓存数据可以是开放通道固态盘的主控,预先执行对应中央处理器所发起数据存储任务而传输写入到该固态缓存区的数据。
步骤S30,将各所述缓存数据写入各所述数据存储通道,以供各所述数据存储通道按 照各所述来源应用程序,分别将各所述缓存数据并行存储在相互隔离的数据块上,其中,所述数据块与所述来源应用程序一一对应。
在本实施例中,终端设备中使用的开放通道固态盘,在通过主控确定了当上述的一个或者多个数据存储通道,和确定了上述的一个或者多个来源应用程序之后,即进一步将一个或者多个待搬移缓存区中的缓存数据,分别写入到的该待搬移缓存区对应的数据存储通道当中,从而由一个或者多个数据存储通道各自按照自身所接收缓存数据的来源应用程序,并行的将该缓存数据写入到后端固态盘上,与该来源应用程序一一对应的数据块上进行存储。
示例性地,假定上述终端设备所使用开放通道固态盘在总缓存区为终端设备的3个中央处理器均划分了一个与每个中央处理器一一对应的固态缓存区1至3。如此,该开放通道固态盘的主控在接收到3个中央处理器中的处理器1所发起的数据存储指令时,则立即检测该固态盘的总缓存的缓存状态,然后基于该缓存状态标识的固态缓存区1至3各自的数据填充程度,确定该固态缓存区1至3当中的固态缓存区1和固态缓存区2,为当前时刻需要进一步将所缓存数据向固态盘后端的数据块进行数据搬移的待搬移缓存区(如,固态缓存区1和固态缓存区2各自缓存的主控预先响应处理器1和处理器2各自发起的数据存储任务,而占用了全部空间或者大部分空间来对该数据存储任务对应的数据进行缓存,导致各自的数据填充程度已经达到了预先设定的容量充足条件),最后,该开放通道固态盘的主控即可进一步确定该固态缓存区1对应的处理器1和固态缓存区2对应的处理器2,各自在该固态盘的底层存储队列当中所关联的数据存储通道,假定分别为数据存储通道Channel 1和数据存储通道Channel 2,以及,确定该固态缓存区1所缓存的缓存数据1的来源应用程序——APP1,和,该固态缓存区2所缓存的缓存数据2的来源应用程序——APP2。从而,该开放通道固态盘的主控即可将缓存数据1对应写入数据存储通道Channel 1,和,将缓存数据2对应写入数据存储通道Channel 2,而该数据存储通道Channel 1和数据存储通道Channel 2即可并行的将缓存数据1和缓存数据2,分别写入到来源应用程序——APP1对应的数据块1和来源应用程序——APP2对应的数据块2上进行存储,该数据块1和数据块2相互间存在物理隔离。
在本实施例中,本申请基于开放通道固态盘的数据存储方法,通过终端设备中使用的开放通道固态盘在主控接收到多个中央处理器中一个或者多个处理器发起的数据存储指令时,立即检测该开放通道固态盘的总缓存区在当前时刻的缓存状态。然后,进一步基于该缓存状态所标识的该总缓存区当中分别与各中央处理器对应的各固定缓存区的数据填充程度,确定当前时刻各固定缓存区中需要进一步将缓存数据向固态盘后端数据块进行搬移的一个或者多个待搬移缓存区。之后,开放通道固态盘的主控立即进一步确定该一个或者多个待搬移缓存区各自对应的中央处理器,分别在该固态盘底层存储队列当中所关联的数据存储通道,并,同步或者异步的确定该一个或者多个待搬移缓存区当中的缓存数据的来源应用程序。从而,开放通道固态盘的主控即将一个或者多个待搬移缓存区中的缓存数据,分别写入到的该待搬移缓存区对应的数据存储通道当中,从而由一个或者多个数据存储通道各自按照自身所接收缓存数据的来源应用程序,并行的将该缓存数据写入到后端固 态盘上,与该来源应用程序一一对应的数据块上进行存储。
如此,本申请通过针对于不同的中央处理器分别采用单独的固定缓存区,从而各处理器对应的不同线程可以使用不同的缓存来进行数据存储,线程处理时也可直接访问处理器对应的缓存区即可,不需要进行仲裁等行为;并且,本申请通过将各个缓存区分别对应于特定的数据存储通道,即,固定闪存阵列通道,从而在将缓存区的数据写入固态盘后端具体的数据块上时即可将缓存区数据从所有通道并行向下进行写入存储,充分利用了闪存阵列的带宽和内部并行性,减少了将数据向数据块搬移的耗时。此外,本申请还通过各数据存储通道按照各数据的来源应用程序,将缓存区数据分别并行存储在相互隔离的数据块上,从而不仅避免了不同应用程序之间的存储竞争,同时也避免了存储介质本身的擦除、写放大问题带来的不同应用程序数据的存储问题。即,本申请实现了在提升开放通道固态盘写并行性以提升固态盘数据写入性能的同时,确保写入固态盘的数据达成有效地安全隔离。
基于上述本申请基于开放通道固态盘的数据存储方法的第一实施例,提出本申请基于开放通道固态盘的数据存储方法的第二实施例。
在本实施例中,上述终端设备使用的开放通道固态盘,在通过主控于接收到一个或者多个中央处理器所发起数据存储指令时,该开放通道固态盘的总缓存区在当前时刻的缓存状态,包括一个或者多个固定缓存区各自的缓存容量状态,该固态缓存区的缓存容量状态即直接标识该固态缓存区的数据填充情况,即,标识该固态缓存区中已经缓存的数据对于该固态缓存区全部容量的占用情况。
基于此,上述的步骤S10中“根据所述缓存状态确定各所述固定缓存区中的待搬移缓存区”的步骤,可以包括:
步骤S101,检测各所述缓存容量状态是否均符合预设的容量充足条件;
在本实施例中,终端设备所使用开放通道固态盘的主控在基于该固态盘总缓存区中各个固定缓存区各自的缓存容量状态,确定该多个固定缓存区当中的一个或者多个需要在当前时刻将所缓存数据搬移至固态盘后端数据块的待搬移缓存区时,首先检测该多个固定缓存区各自的缓存容量状态是否均符合预设的容量充足条件。
在一些可行的实施例中,终端设备所使用开放通道固态盘的主控可预先配置各个固定缓存区的数据填充容量等级。例如,开放通道固态盘的主控可基于固定缓存区所具备容量被数据占用的多少,设置4个数据填充容量等级empty、low、high和full。这其中,empty表示固定缓存区内没有数据,low表示固定缓存区内有数据但数据占用缓存区容量不到一半,high表示固定缓存区内有数据且该数据占用了一半及以上的缓存区容量但缓存区未满,full则表示固定缓存区内的数据已经占满了缓存区的全部容量。
基于此,开放通道固态盘的主控即可进一步设定“只要固定缓存区对应该固定缓存区的数据填充容量等级不为full等级”,即,固定缓存区的缓存容量状态所标识该固定缓存区中缓存的数据没有占满缓存区的全部容量,均认为该固定缓存区的缓存容量状态是符合容量充足条件的。
步骤S102,若否,则根据各所述缓存容量状态对应的缓存区填充容量等级,在各所述 固定缓存区中确定待搬移缓存区。
在本实施例中,若终端设备所使用开放通道固态盘的主控,在检测多个固定缓存区各自的缓存容量状态是否均符合预设的容量充足条件时,检测到了该多个固定缓存区中的某一个或者多个目标缓存区的缓存容量状态,不符合上述的容量充足条件,即,该一个或者多个目标缓存区中缓存的数据占满了缓存区的全部容量,主控即立即确定在当前时刻,该多个固定缓存区中存在需要将缓存数据向固态盘后端的数据块进行搬移的缓存区,从而,主控即进一步按照该多个固定缓存区各自的缓存容量状态所对应的缓存区填充容量等级,在该多个固定缓存区中确定出一个或者多个待搬移缓存区。
在一些可行的实施例中,终端设备所使用开放通道固态盘的主控可以选择将固定缓存区的缓存容量状态,所对应的缓存区填充容量等级为high和/或者full的固定缓存区,均确定为当前需要将缓存数据向数据块进行搬移的待搬移缓存区。
在一些可行的实施例中,在上述的“检测所述总缓存区的缓存状态”之后,本申请基于开放通道固态盘的数据存储方法还可以包括:
步骤S40,根据所述缓存状态向所述中央处理器对应的目标固定缓存区写入所述数据存储指令指向的待存储数据。
在本实施例中,终端设备所使用开放通道固态盘的主控,除了可以按照上述固态盘总缓存区的缓存状态,在确定出待搬移缓存区以将该待搬移缓存区当中的缓存数据,向固态盘后端的数据块进行搬移之外,还可以进一步按照该缓存状态,响应上述中央处理器所发起的数据存储指令以将该数据存储指令指向的待存储数据,写入到该中央处理器在多个固定缓存区当中唯一对应的目标固定缓存区进行缓存。
在一实施方式中,步骤S40,可以包括:
步骤S401,若检测到各所述缓存容量状态均符合所述容量充足条件,则将所述数据存储指令指向的待存储数据,写入所述中央处理器在多个所述固定缓存区中对应的目标固定缓存区。
在本实施例中,若终端设备所使用开放通道固态盘的主控,在检测多个固定缓存区各自的缓存容量状态是否均符合预设的容量充足条件时,检测到了该多个固定缓存区各自的缓存容量状态,均能够符合上述的容量充足条件,即,该多个固定缓存区各自缓存的数据都没有占满缓存区的全部容量,则主控即立即确定在当前时刻,该多个固定缓存区中不存在需要将缓存数据向固态盘后端的数据块进行搬移的缓存区,从而,主控即进一步响应上述中央处理器所发起的数据存储指令,以直接将该数据存储指令所指向的待存储数据,写入到该中央处理器在该多个固定缓存区当中唯一对应的目标固定缓存区上进行缓存。
示例性地,假定上述终端设备所使用开放通道固态盘在总缓存区为终端设备的3个中央处理器均划分了一个与每个中央处理器一一对应的固态缓存区1至3。如此,该开放通道固态盘的主控在接收到3个中央处理器中的处理器1所发起的数据存储指令时,则立即检测该固态盘的总缓存的缓存状态,然后基于该缓存状态标识的固态缓存区1至3各自的数据填充程度,确定该固态缓存区1至3当中,不存在需要进一步将所缓存数据向固态盘后端的数据块进行数据搬移的待搬移缓存区(即,固态缓存区1至3各自缓存的数据均没有占满缓存区),如此,该开放通道固态盘的主控即可直接响应该处理器1所发起的数据 存储指令,以将该数据存储指令指向的待存储数据a,直接写入到该处理器1在该固态缓存区1至3当中唯一对应的固定缓存区1当中进行缓存。
在本实施例中,本申请基于开放通道固态盘的数据存储方法通过针对于不同的中央处理器分别采用单独的固定缓存区,从而各处理器对应的不同线程可以使用不同的缓存来进行数据存储,线程处理时也可直接访问处理器对应的缓存区即可,不需要进行仲裁等行为,从而能够达到一定程度的线程之间的并行,减少了线程访问处理的消耗。
基于上述本申请基于开放通道固态盘的数据存储方法的第二实施例,提出本申请基于开放通道固态盘的数据存储方法的第三实施例。
在本实施例中,上述开放通道固态盘的总缓存区所针对多个中央处理器一一对应划分设置的多个固定缓存区包括:动态内存DRAM。基于此,上述“将所述数据存储指令指向的待存储数据,写入所述中央处理器在一个或者多个所述固定缓存区中对应的目标固定缓存区”的步骤,可以包括:
步骤a,确定所述中央处理器在一个或者多个所述固定缓存区中对应的目标固定缓存区;
步骤b,将所述数据存储指令指向的待存储数据,写入所述目标固定缓存区的动态内存进行缓存。
在本实施例中,终端设备所使用开放通道固态盘的主控,在响应中央处理器所发起的数据存储指令,以将该数据存储指令所指向的待存储数据写入到固态盘总缓存中,与该中央处理器唯一对应的固定缓存区时,主控即首先在该总缓存的多个固定缓存区当中,确定出该中央处理器所唯一对应的目标固定缓存区,然后,主控即进一步将该待存储数据写入到该目标固定缓存区所包含的动态内存DRAM当中进行缓存。
在一些可行的实施例中,上述开放通道固态盘总缓存区的多个固定缓存区还包括非易失性内存MRAM;基于此,在上述步骤b之后,本申请基于开放通道固态盘的数据存储方法还可以包括:
步骤c,在监测到设备掉电事件时,将所述动态内存中的待存储数据转移至所述目标固定缓存区的非易失性内存进行缓存。
在本实施例中,终端设备所使用开放通道固态盘采用混合主存配置形成多个分别与各中央处理器一一对应的固态缓存区,即,每一个与中央处理器对应的固态缓存区均包括动态内存DRAM和非易失性内存MRAM。如此,该开放通道固态盘的主控在将中央处理器所发起数据存储指令指向的待存储数据,写入到该中央处理器所对应目标固定缓存区的动态内存DRAM之后,若主控在针对终端设备的持续监测过程中,监测到了该终端设备发生设备掉电事件,该主控则立即将该动态内存中缓存的待存储数据,均快速地转移至该目标固定缓存区的非易失性内存MRAM当中进行缓存。
在本实施例中,本申请基于开放通道固态盘的数据存储方法,通过对固态盘总缓存区中的多个固态缓存区采用混合主存,从而结合该混合主存和上述的容量等级机制对写入数 据到存储设备的过程进行控制,有效地降低了大缓存区掉电的风险,平衡了存储设备的性能和成本,同时还减少了不必要的写入过程,强化了开放通道固态盘的可预测性特点。
基于上述本申请基于开放通道固态盘的数据存储方法的第一实施例、第二实施例和/或者第三实施例,提出本申请基于开放通道固态盘的数据存储方法的第四实施例。
在上述的步骤S30,将各所述缓存数据写入各所述数据存储通道,以供各所述数据存储通道按照各所述来源应用程序,分别将各所述缓存数据并行存储在相互隔离的数据块上之后,本申请基于开放通道固态盘的数据存储方法还可以包括:
步骤S50,对所述缓存状态进行更新,并根据更新后的缓存状态向所述中央处理器在多个所述固定缓存区中对应的目标固定缓存区写入所述数据存储指令指向的待存储数据。
在本实施例中,终端设备所采用开放通道固态盘的主控,在将上述一个或者多个待搬移缓存区中的缓存数据,搬移至固态盘后端的数据块上进行存储之后,还进一步针对该固态盘总缓存区的缓存状态进行更新,从而基于更新后的缓存状态,继续按照上述步骤S40、步骤a、步骤b和步骤c所阐述的过程,将上述中央处理器所发起数据存储指令指向的待存储数据,写入到该中央处理器在多个固定缓存区中唯一对应的目标固定缓存区上进行缓存。
示例性地,如图4所示,终端设备所使用开放通道固态盘的主控,预先为移动终端的每个中央处理器均划分配置了一个对应的固定缓存区,基于此,主控在将该固定缓存区内的数据搬运到固态盘的闪存阵列中之前,还进一步对将写入的数据进行应用程序与中央处理器两个级别的判断并分配合适的空间。而在主控响应数据存储指令将数据写入到数据块时,即根据中央处理器的不同,通过不同的数据存储通道将该数据写入到应用程序层次上相互隔离的区域。如此,可以在提升存储设备并行度的同时对存入的数据进行有效隔离。基于此,在一些可行的实施例中,终端设备所使用开放通道固态盘的主控具体可以采用如下所述的流程来实现上述技术构思,即:
(1)、主控在开放通道固态盘总缓存区中根据中央处理器CPU处理性能为各个中央处理器CPU分配大小相同或者不同的固定缓存区,并在该固态盘的底层存储阵列中也为各个中央处理器CPU分配对应的一个或多个数据存储通道channel;
(2)、终端设备的某一个中央处理器CPU基于数据存储要求发起数据存储指令;
(3)、主控在响应数据存储指令以对指令指向的待存储数据执行写入操作前,查询开放通道固态盘总缓存区的缓存区状态以判断数据写入后状态并更新。若主控判断到当前发起数据存储指令的中央处理器CPU对应的目标固定缓存区的数据缓存状态不为FULL,则确定当前将待存储数据写入到该目标固定缓存区已经成功;
(4)、若主控判断到上述的目标固定缓存区的数据缓存状态为FULL,则暂停将待存储数据写入到该缓存区,并搬移该缓存区当中已经缓存的数据进入固态盘后端的数据块。即,主控查询总缓存区中各个中央处理器CPU各自对应的固定缓存区各自的容量等级,并将容量等级为high以上的一个或者多个固定缓存区中的一半缓存区大小的数据,预备写入对应该一个或者多个固定缓存区对应的数据存储通道;
(5)、主控查询当前需要搬移至数据块的数据所携带的信息,以判断该数据的来源 应用程序APP,从而通过多通道搬移数据到固态盘底层存储阵列中,并将不同来源应用程序APP的数据分别存储到来源应用程序APP对应的不同数据块Block中,而来源于不同中央处理器的数据将存储到不同的数据存储通道Channel上。
(6)、将上述(2)中对应的总缓存区的缓存区状态进行更新,之后再将上述的待存储数据写入缓存区。
在本实施例以及上述本申请基于开放通道固态盘的数据存储方法的各个实施例中,还可以通过开放通道固态盘的将存储设备存储数据的层次进行替换,如,如将数据存储通道Channel替换为存储器中Plane层次,而将数据块Block替换为通道Channel层次,从而完成类似的存储隔离和存储设备并行性加速。
在本实施例中,本申请基于开放通道固态盘的数据存储方法通过针对于不同的中央处理器分别采用单独的固定缓存区,从而各处理器对应的不同线程可以使用不同的缓存来进行数据存储,线程处理时也可直接访问处理器对应的缓存区即可,不需要进行仲裁等行为;并且,本申请通过将各个缓存区分别对应于特定的数据存储通道,即,固定闪存阵列通道,从而在将缓存区的数据写入固态盘后端具体的数据块上时即可将缓存区数据从所有通道并行向下进行写入存储,充分利用了闪存阵列的带宽和内部并行性,减少了将数据向数据块搬移的耗时。此外,本申请还通过各数据存储通道按照各数据的来源应用程序,将缓存区数据分别并行存储在相互隔离的数据块上,从而不仅避免了不同应用程序之间的存储竞争,同时也避免了存储介质本身的擦除、写放大问题带来的不同应用程序数据的存储问题。即,本申请实现了在提升开放通道固态盘写并行性以提升固态盘数据写入性能的同时,确保写入固态盘的数据达成有效地安全隔离。
此外,本申请还提供一种基于开放通道固态盘的数据存储装置,所述开放通道固态盘连接有多个中央处理器,所述开放通道固态盘包括总缓存区和底层存储队列,所述总缓存区包括多个与各所述中央处理器一一对应的固定缓存区;
所述数据存储装置包括:
第一确定模块10,用于在接收到所述中央处理器发起的数据存储指令时,检测所述总缓存区的缓存状态,并根据所述缓存状态确定各所述固定缓存区中的待搬移缓存区;
第二确定模块20,用于确定各所述待搬移缓存区分别对应的中央处理器各自在所述底层存储队列中关联的数据存储通道,并确定各所述待搬移缓存区中的缓存数据的来源应用程序;
数据存储模块30,用于将各所述缓存数据写入各所述数据存储通道,以供各所述数据存储通道按照各所述来源应用程序,分别将各所述缓存数据并行存储在相互隔离的数据块上,其中,所述数据块与所述来源应用程序一一对应。
在一实施方式中,所述缓存状态包括一个或者多个所述固定缓存区各自的缓存容量状态;第一确定模块10,包括:
缓存容量检测单元,用于检测各所述缓存容量状态是否均符合预设的容量充足条件;
搬移确定单元,用于根据各所述缓存容量状态对应的缓存区填充容量等级,在各所述 固定缓存区中确定待搬移缓存区。
在一实施方式中,本申请基于开放通道固态盘的数据存储装置的数据存储模块30,还用于根据所述缓存状态向所述中央处理器对应的目标固定缓存区写入所述数据存储指令指向的待存储数据。
在一实施方式中,数据存储模块30,还用于若检测到各所述缓存容量状态均符合所述容量充足条件,则将所述数据存储指令指向的待存储数据,写入所述中央处理器在多个所述固定缓存区中对应的目标固定缓存区。
在一实施方式中,所述固定缓存区包括动态内存;
数据存储模块30,包括:
第一存储单元,用于确定所述中央处理器在一个或者多个所述固定缓存区中对应的目标固定缓存区;和,将所述数据存储指令指向的待存储数据,写入所述目标固定缓存区的动态内存进行缓存。
在一实施方式中,所述固定缓存区还包括非易失性内存;
数据存储模块30,还包括:
第二存储单元,用于在监测到设备掉电事件时,将所述动态内存中的待存储数据转移至所述目标固定缓存区的非易失性内存进行缓存。
在一实施方式中,本申请基于开放通道固态盘的数据存储装置的数据存储模块30,还用于对所述缓存状态进行更新,并根据更新后的缓存状态向所述中央处理器在多个所述固定缓存区中对应的目标固定缓存区写入所述数据存储指令指向的待存储数据。
本申请基于开放通道固态盘的数据存储装置的各功能模块的具体实施例与上述基于开放通道固态盘的数据存储方法各实施例基本相同,在此不作赘述。
本申请还提供一种计算机存储介质,该计算机存储介质上存储有数据存储程序,所述数据存储程序被处理器执行时实现如以上任一项实施例所述的基于开放通道固态盘的数据存储方法的步骤。
本申请计算机存储介质的具体实施例与上述基于开放通道固态盘的数据存储方法各实施例基本相同,在此不作赘述。
本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如以上任一项实施例所述的基于开放通道固态盘的数据存储方法的步骤。
本申请计算机程序产品的具体实施例与上述基于开放通道固态盘的数据存储方法各实施例基本相同,在此不作赘述。
以上仅为本申请的可选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (11)

  1. 一种基于开放通道固态盘的数据存储方法,其中,所述开放通道固态盘连接有多个中央处理器,所述开放通道固态盘包括总缓存区和底层存储队列,所述总缓存区包括多个与各所述中央处理器一一对应的固定缓存区;
    所述数据存储方法包括:
    在接收到所述中央处理器发起的数据存储指令时,检测所述总缓存区的缓存状态,并根据所述缓存状态确定各所述固定缓存区中的待搬移缓存区;
    确定各所述待搬移缓存区分别对应的中央处理器各自在所述底层存储队列中关联的数据存储通道,并确定各所述待搬移缓存区中的缓存数据的来源应用程序;
    将各所述缓存数据写入各所述数据存储通道,以供各所述数据存储通道按照各所述来源应用程序,分别将各所述缓存数据并行存储在相互隔离的数据块上,其中,所述数据块与所述来源应用程序一一对应。
  2. 如权利要求1所述的数据存储方法,其中,所述缓存状态包括一个或者多个所述固定缓存区各自的缓存容量状态;
    所述根据所述缓存状态确定各所述固定缓存区中的待搬移缓存区,包括:
    检测各所述缓存容量状态是否均符合预设的容量充足条件;
    若否,则根据各所述缓存容量状态对应的缓存区填充容量等级,在各所述固定缓存区中确定待搬移缓存区。
  3. 如权利要求2所述的数据存储方法,其中,在所述检测所述总缓存区的缓存状态之后,所述方法还包括:
    根据所述缓存状态向所述中央处理器对应的目标固定缓存区写入所述数据存储指令指向的待存储数据。
  4. 如权利要求3所述的数据存储方法,其中,所述根据所述缓存状态向所述中央处理器对应的目标固定缓存区写入所述数据存储指令指向的待存储数据,包括:
    若检测到各所述缓存容量状态均符合所述容量充足条件,则将所述数据存储指令指向的待存储数据,写入所述中央处理器在多个所述固定缓存区中对应的目标固定缓存区。
  5. 如权利要求4所述的数据存储方法,其中,所述固定缓存区包括动态内存;
    所述将所述数据存储指令指向的待存储数据,写入所述中央处理器在一个或者多个所述固定缓存区中对应的目标固定缓存区,包括:
    确定所述中央处理器在一个或者多个所述固定缓存区中对应的目标固定缓存区;
    将所述数据存储指令指向的待存储数据,写入所述目标固定缓存区的动态内存进行缓存。
  6. 如权利要求5所述的数据存储方法,其中,所述固定缓存区还包括非易失性内存;
    在所述将所述数据存储指令指向的待存储数据,写入所述目标固定缓存区的动态内存进行缓存之后,所述方法还包括:
    在监测到设备掉电事件时,将所述动态内存中的待存储数据转移至所述目标固定缓存区的非易失性内存进行缓存。
  7. 如权利要求1至6中任一项所述的数据存储方法,其中,在所述将各所述缓存数据写入各所述数据存储通道,以供各所述数据存储通道按照各所述来源应用程序,分别将各所述缓存数据并行存储在相互隔离的数据块上之后,所述方法还包括:
    对所述缓存状态进行更新,并根据更新后的缓存状态向所述中央处理器在多个所述固定缓存区中对应的目标固定缓存区写入所述数据存储指令指向的待存储数据。
  8. 一种基于开放通道固态盘的数据存储装置,其中,所述开放通道固态盘连接有多个中央处理器,所述开放通道固态盘包括总缓存区和底层存储队列,所述总缓存区包括多个与各所述中央处理器一一对应的固定缓存区;
    所述数据存储装置包括:
    第一确定模块,设置为在接收到所述中央处理器发起的数据存储指令时,检测所述总缓存区的缓存状态,并根据所述缓存状态确定各所述固定缓存区中的待搬移缓存区;
    第二确定模块,设置为确定各所述待搬移缓存区分别对应的中央处理器各自在所述底层存储队列中关联的数据存储通道,并确定各所述待搬移缓存区中的缓存数据的来源应用程序;
    数据存储模块,设置为将各所述缓存数据写入各所述数据存储通道,以供各所述数据存储通道按照各所述来源应用程序,分别将各所述缓存数据并行存储在相互隔离的数据块上,其中,所述数据块与所述来源应用程序一一对应。
  9. 一种终端设备,其中,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据存储程序,所述数据存储程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据存储方法的步骤。
  10. 一种计算机存储介质,其中,所述计算机存储介质上存储有数据存储程序,所述数据存储程序被处理器执行时实现如权利要求1至7中任一项所述的数据存储方法的步骤。
  11. 一种计算机程序产品,其中,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据存储方法的步骤。
PCT/CN2023/125424 2022-10-25 2023-10-19 基于开放通道固态盘的数据存储方法、装置、设备、介质及产品 WO2024088150A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211310527.5 2022-10-25
CN202211310527.5A CN117971110A (zh) 2022-10-25 2022-10-25 基于开放通道固态盘的数据存储方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
WO2024088150A1 true WO2024088150A1 (zh) 2024-05-02

Family

ID=90830071

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/125424 WO2024088150A1 (zh) 2022-10-25 2023-10-19 基于开放通道固态盘的数据存储方法、装置、设备、介质及产品

Country Status (2)

Country Link
CN (1) CN117971110A (zh)
WO (1) WO2024088150A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060161723A1 (en) * 2005-01-14 2006-07-20 Stmicroelectronics S.R.I. Controlling operation of flash memories
CN102262512A (zh) * 2011-07-21 2011-11-30 浪潮(北京)电子信息产业有限公司 一种实现磁盘阵列缓存分区管理的系统、装置及方法
CN111538461A (zh) * 2020-04-21 2020-08-14 招商局金融科技有限公司 基于固态硬盘缓存的数据读写方法、装置及存储介质
CN114415972A (zh) * 2022-03-28 2022-04-29 北京得瑞领新科技有限公司 Ssd的数据处理方法、装置、存储介质及ssd设备
CN114489484A (zh) * 2021-12-27 2022-05-13 得一微电子股份有限公司 Ssd的数据存储方法、ssd、终端设备以及存储介质
CN115083451A (zh) * 2022-06-09 2022-09-20 阿里巴巴(中国)有限公司 多通道的数据处理方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060161723A1 (en) * 2005-01-14 2006-07-20 Stmicroelectronics S.R.I. Controlling operation of flash memories
CN102262512A (zh) * 2011-07-21 2011-11-30 浪潮(北京)电子信息产业有限公司 一种实现磁盘阵列缓存分区管理的系统、装置及方法
CN111538461A (zh) * 2020-04-21 2020-08-14 招商局金融科技有限公司 基于固态硬盘缓存的数据读写方法、装置及存储介质
CN114489484A (zh) * 2021-12-27 2022-05-13 得一微电子股份有限公司 Ssd的数据存储方法、ssd、终端设备以及存储介质
CN114415972A (zh) * 2022-03-28 2022-04-29 北京得瑞领新科技有限公司 Ssd的数据处理方法、装置、存储介质及ssd设备
CN115083451A (zh) * 2022-06-09 2022-09-20 阿里巴巴(中国)有限公司 多通道的数据处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN117971110A (zh) 2024-05-03

Similar Documents

Publication Publication Date Title
US9009397B1 (en) Storage processor managing solid state disk array
JP5347061B2 (ja) フラッシュメモリデータストレージデバイスにデータを格納するための方法及び装置
US8627040B2 (en) Processor-bus-connected flash storage paging device using a virtual memory mapping table and page faults
US11379151B2 (en) Flow control of large sequential host read commands based on a queue threshold
JP2019061699A (ja) 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法
US11797436B2 (en) Memory system and method for controlling nonvolatile memory
US10282292B2 (en) Cluster-based migration in a multi-level memory hierarchy
US9792073B2 (en) Method of LUN management in a solid state disk array
US20140189032A1 (en) Computer system and method of controlling computer system
US20140095555A1 (en) File management device and method for storage system
US10642513B2 (en) Partially de-centralized latch management architectures for storage devices
CN107885456A (zh) 减少io命令访问nvm的冲突
GB2507410A (en) Storage class memory having low power, low latency, and high capacity
US10430329B2 (en) Quality of service aware storage class memory/NAND flash hybrid solid state drive
KR20160022226A (ko) 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법
US11093410B2 (en) Cache management method, storage system and computer program product
US11132291B2 (en) System and method of FPGA-executed flash translation layer in multiple solid state drives
US8683161B2 (en) Method and apparatus for increasing file copy performance on solid state mass storage devices
CN107885667A (zh) 降低读命令处理延迟的方法与装置
WO2024088150A1 (zh) 基于开放通道固态盘的数据存储方法、装置、设备、介质及产品
US11768628B2 (en) Information processing apparatus
US20230359578A1 (en) Computing system including cxl switch, memory device and storage device and operating method thereof
US20230359389A1 (en) Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory devices
US20230359567A1 (en) Storage device, computing device including storage device and memory device, and operating method of computing device
JP7490714B2 (ja) メモリシステムおよび制御方法