CN111309643B - Data storage device, control method thereof and data storage device system - Google Patents

Data storage device, control method thereof and data storage device system Download PDF

Info

Publication number
CN111309643B
CN111309643B CN202010088767.XA CN202010088767A CN111309643B CN 111309643 B CN111309643 B CN 111309643B CN 202010088767 A CN202010088767 A CN 202010088767A CN 111309643 B CN111309643 B CN 111309643B
Authority
CN
China
Prior art keywords
data storage
controller
storage device
command
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010088767.XA
Other languages
Chinese (zh)
Other versions
CN111309643A (en
Inventor
王守磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Kangxinwei Storage Technology Co Ltd
Original Assignee
Hefei Kangxinwei Storage Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hefei Kangxinwei Storage Technology Co Ltd filed Critical Hefei Kangxinwei Storage Technology Co Ltd
Priority to CN202010088767.XA priority Critical patent/CN111309643B/en
Publication of CN111309643A publication Critical patent/CN111309643A/en
Application granted granted Critical
Publication of CN111309643B publication Critical patent/CN111309643B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

The invention discloses a data storage device and a control method thereof and a data storage device system, wherein the data storage device comprises: the storage unit array comprises a plurality of data storage units, and the data storage units are divided into a plurality of areas; and the controller is connected with the storage unit array, and the controller distributes different areas to different user terminals according to different user terminal commands. The invention solves the problem that the operations of different user ends are easy to interfere with each other when the data storage device performs read-write operation.

Description

Data storage device, control method thereof and data storage device system
Technical Field
The present invention relates to a data storage device, a control method thereof and a data storage device system, which belong to the technical field of storage.
Background
The hard disk is widely used in the fields of military affairs, vehicle-mounted, industrial control, video monitoring, network terminals, electric power, medical treatment, aviation, navigation equipment and the like.
The data of the user are all stored in the calculator flash memory device, the calculator flash memory device is mainly a nonvolatile flash memory device, the calculator flash memory device not only determines the service life of the hard disk, but also has great influence on the performance of the hard disk. When a plurality of users perform read-write operation, the storage sequence in the data storage units is arranged according to the storage time, which causes the storage content of the users to be crossed, and due to the characteristics of the flash memory device of the hard disk, the commands on each data storage unit are sequentially executed, and at this time, if the write operation is required, the next write operation can be performed only after the previous data storage subunit (BLOCK) completes the write operation, so that when different users perform the operation at the same time, the read-write efficiency can be greatly reduced.
Disclosure of Invention
The invention aims to provide a data storage device, a control method thereof and a data storage device system, which solve the problem that operations of different user ends are easy to interfere with each other when the data storage device performs read-write operations.
In order to solve the technical problems, the invention is realized by the following technical scheme:
the present invention provides a data storage device, comprising:
a memory cell array including a plurality of data memory cells divided into a plurality of regions; and
and the controller is connected with the storage unit array, and distributes different areas to different user terminals according to commands of different user terminals.
In one embodiment of the invention, said area comprises at least one of said data storage units.
In one embodiment of the present invention, the number of the data storage units in at least two of the plurality of areas is the same.
In one embodiment of the present invention, the number of the data storage units in the plurality of areas is the same.
In one embodiment of the present invention, the number of the data storage units in the plurality of areas is different.
In one embodiment of the present invention, the number of data storage units in the plurality of regions is partially the same.
In an embodiment of the present invention, the controller further includes a cache device for storing data required by the operation instruction running on the controller.
In one embodiment of the invention, the data storage units on the data storage string operate sequentially.
The invention provides a control method of a data storage device, which comprises the following steps:
dividing a memory cell array into a plurality of regions, wherein the memory cell array comprises a plurality of data memory cells;
and distributing different areas to different user terminals through a controller, wherein the controller is connected with the storage unit array.
In one embodiment of the present invention, the dividing the memory cell array into a plurality of regions, wherein the memory cell array includes a plurality of data memory cells includes:
the user end defines the attribute of the region which needs to be supported by the data storage device through the controller;
the user end defines the number of data storage units in the region to be supported by the data storage device through the controller.
In one embodiment of the invention, the attributes include: the index of the user end supported by the region and the number of the data storage units occupied by the user end.
In an embodiment of the present invention, the allocating different areas to different user terminals through a controller, the connecting the controller to the memory cell array includes:
the user side defines a data storage unit which needs to be released by the data storage equipment through the controller;
the user side sends a write/read command to write/extract command data into/from the corresponding data storage unit through the controller.
In an embodiment of the present invention, before the user end defines the data storage unit to be released by the data storage device through the controller, the method includes the following steps:
the user applies for the required amount of space through the controller.
In an embodiment of the invention, the user side performs data interaction with the memory cell array through the index.
The present invention also provides a data storage device system comprising:
a user side;
a data storage device connected to the user side, the data storage device comprising:
a memory cell array including a plurality of data memory cells divided into a plurality of regions; and
and the controller is connected with the storage unit array, and distributes different areas to different user terminals according to commands of different user terminals.
According to the invention, the data storage units in the data storage device are divided into different areas and then distributed to different users according to the requirements of the user sides, so that the operations among the user sides are not influenced mutually, the efficiency of the whole device is improved, and the service life of the whole device is prolonged.
Of course, it is not necessary for any product in which the invention is practiced to achieve all of the above-described advantages at the same time.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings used in the description of the embodiments will be briefly introduced below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art that other drawings can be obtained according to the drawings without creative efforts.
FIG. 1a is a schematic diagram of a data storage device according to the present invention;
FIG. 1b is a schematic diagram of a data storage device according to the present invention;
FIG. 2 is a schematic diagram of a data storage device system according to the present invention;
FIG. 3 is a schematic diagram of a memory cell array according to the present invention;
FIG. 4 is a diagram illustrating a method for controlling a data storage device according to the present invention;
FIG. 5 is a diagram illustrating a method for controlling a data storage device according to the present invention;
FIG. 6 is a diagram illustrating a method for controlling a data storage device according to the present invention;
FIG. 7 is a diagram illustrating a method for controlling a data storage device according to the present invention;
FIG. 8 is a diagram of a data storage device system according to the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
It should be noted that the drawings provided in the present embodiment are only for illustrating the basic idea of the present invention, and the components related to the present invention are only shown in the drawings rather than drawn according to the number, shape and size of the components in actual implementation, and the type, quantity and proportion of the components in actual implementation may be changed freely, and the layout of the components may be more complicated.
Referring to fig. 1a to 3, a data storage device 300 according to the present invention is provided, wherein the data storage device 300 may include a memory cell array 400 and a controller 310.
In the embodiment, a data storage device 300 provided by the invention can be applied to a data storage device system 100.
In this embodiment, the data storage device system 100 may include the user terminal 200 and the data storage device 300, the data storage device 300 may include the memory cell array 400 and the controller 310, or the user terminal 200 and the data storage device 300 may be integrated into a single device. The data storage system 100 may be, for example, a computer, a portable computer, an ultra mobile new personal computer, a workstation, a data server, a netbook, a personal digital assistant, a nettablet, a wireless telephone, a mobile telephone, a smartphone, an electronic book, a portable multimedia player, a digital camera, a digital recorder/player, a digital image/video recorder/player, a portable game player, a navigation system, a black box, a 3D television, a device capable of transmitting and receiving information in a wireless environment, one of various electronic devices constituting a home network, radio frequency identification, or one of various electronic devices constituting a data storage system.
Referring to fig. 1a, in the embodiment, the user 200 may control the overall operation of the data storage device 300, and the user may send the read or write operations to the controller to implement the above operations, and in the embodiment, the user 200 may include at least one processor, a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), a memory controller, and the like. In embodiments, the processor may comprise a general purpose microprocessor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), or a combination thereof.
Referring to fig. 1a, in the present embodiment, a user terminal may generate a write request for controlling a write operation of the data storage device 300 or a read request for controlling a read operation of the data storage device 300. The write request may include a write address (e.g., a logical address) and the read request may include a read address (e.g., a logical address). The user terminal 200 may include at least one kernel. A request may refer to a command.
Referring to fig. 1a, in the present embodiment, the memory cell array 320 may be at least one of a volatile memory, a non-volatile memory or a combination thereof. For example, the memory cell array 320 may be a dual in-line memory module (DIMM), a non-volatile dual in-line memory module (NVDIMM), a Solid State Disk (SSD), a universal flash memory (UFS), an embedded multimedia card (eMMC), a Secure Digital (SD) card, a Dynamic Random Access Memory (DRAM), a static ram (sram), a NAND flash memory, a vertical NAND flash memory, a phase change ram (pram), or a resistive ram (rram).
As shown in fig. 1b, in the present embodiment, an application of the data storage device 300 to a Solid State Drive (SSD) is illustrated, wherein an array 320 in a storage unit in the SSD may be a Nand Flash (Nand Flash), a controller 310 may be a main control chip 510, and a cache device may be a cache chip 520, for convenience of understanding, please refer to fig. 1b, where fig. 1b is a schematic diagram of the solid state drive in the embodiment of the present invention, the embodiment of the present invention is the data storage device 300 applied to the solid state drive, and the following description is provided with reference to fig. 1 b.
As shown in fig. 1b, the solid state disk can be divided into three parts, which are a main control chip 510, a Nand Flash (Nand Flash)530 and a cache chip 520, where the main control chip 510 is used to run an operation instruction in firmware including a Solid State Drive (SSD), and an interface connected to a user end (host)200 exists on the main control chip 510; nand flash memory 530, wherein nand flash memory 530 comprises two portions: the Logical Unit Number (LUN) 532 is configured to process a command issued by the main control chip 510, and read, write, or erase target data on the flash memory chip 531 according to the command, where there are multiple logical unit numbers 532, for example, 4 or 8 logical unit numbers, on one flash memory chip 531, and these logical unit numbers 532 may process the command in parallel, which is not limited herein. The flash memory chip 531 is used to store target data, wherein the flash memory chip 531 may be a nand-type flash memory, and the nand-type flash memory may be further divided into a single-level cell (SLC), a multi-level cell (MLC), and a triple-level cell (TLC) according to a difference in density of electronic units, where the type of the nand-type flash memory is not limited, and the nand-type flash memory generally includes an array of 8, 16, or 32 nand-type flash memory chips in a Solid State Drive (SSD). The cache chip 520 is used for storing data temporarily required by an operation instruction running on the main control chip 510, and the type of the cache chip 520 is mainly a Dynamic Random Access Memory (DRAM) or a volatile memory such as a Static Random Access Memory (SRAM), but the invention is not limited to this example. In the nand flash memory, data storage is realized by changing 0/1 of a Cell (Cell), when in write operation, 0 or 1 of the corresponding Cell is modified, the Cell is a minimum operation erasing and reading unit, corresponds to a floating gate transistor, and can store 1 byte (bit) or multi-byte (bit) data, in the nand chip, the minimum unit to be written is a page (page) with a size of 4 Kilobytes (KB) or 512 bytes (B), which is not limited herein, the minimum erasing unit is a block (block), a block corresponding to a hardware end of a Solid State Drive (SSD) is called a physical block, the write data of the Solid State Drive (SSD) is written in a manner of a super page (super page), and one super page (super page) is distributed on different physical blocks (physical blocks).
In various embodiments, referring to fig. 2, the present invention can be applied to a data storage device system 100, which can include a user terminal 200 and a data storage device 300 for transmitting commands and/or data to the user terminal 200 through an interface 110. Data processing system 100 may be implemented as a Personal Computer (PC), a workstation, a data center, an Internet Data Center (IDC), a Storage Area Network (SAN), a Network Attached Storage (NAS), or a mobile computing device, although the inventive concepts are not limited to these examples. The mobile computing device may be implemented as a laptop computer, a cellular phone, a smart phone, a tablet PC, a Personal Digital Assistant (PDA), an Enterprise Digital Assistant (EDA), a digital still camera, a digital video camera, a Portable Multimedia Player (PMP), a personal navigation device or Portable Navigation Device (PND), a handheld game console, a Mobile Internet Device (MID), a wearable computer, an internet of things (IoT) device, an internet of things (IoE) device, a drone, or an electronic book, although the inventive concepts are not limited to these examples.
In various embodiments, referring to fig. 2, the interface 110 may be a Serial Advanced Technology Attachment (SATA) interface, a SATA express (SATAe) interface, a SAS (serial attached Small Computer System Interface (SCSI)), a peripheral component interconnect express (PCIe) interface, a non-volatile memory express (NVMe) interface, an Advanced Host Controller Interface (AHCI), or a multimedia card (MMC) interface, but is not limited thereto. The interface 110 may transmit electrical signals or optical signals, and in this embodiment, the message with the internal operation request may be transmitted to the user terminal 200 through at least one data channel, at least one clock channel, at least one control channel, at least one dedicated information channel, or a combination thereof between the user terminal 200 and the memory device 400.
In various embodiments, referring to fig. 2, the user terminal 200 can control data processing operations (e.g., write operations or read operations) of the data storage device 300 via the interface 110. The user terminal 200 may refer to a host controller.
In various embodiments, referring to fig. 2, a data storage device 300 may include a controller 310, a buffer 360, and a plurality of memory cell arrays 320. The data storage device 300 may also include a Power Management Integrated Circuit (PMIC) 370.
In various embodiments, referring to fig. 3, the memory cell array 320 may be a flash-based memory device, but is not limited thereto. The storage unit array 320 may be implemented as a Solid State Drive (SSD), an embedded SSD (essd), a universal flash memory (UFS), an MMC, an embedded MMC (emmc), or a managed NAND, but the inventive concept is not limited to these examples. The flash memory based memory cell array may be as shown in fig. 3, the memory cell array 320 may include a plurality of data memory cells 321, and the memory cell array 320 may include a two-dimensional memory cell array or a three-dimensional memory cell array. The three-dimensional memory cell array may be monolithically formed at one or more physical levels in memory cell array 320 having an active region disposed on or above a silicon substrate, and may include circuitry involved in the operation of the memory cell array. The circuitry may be formed in, on, or over a silicon substrate.
In an embodiment of the present invention, the data storage unit 321 includes a plurality of data storage sub-units 322, the data storage unit 321 may be, for example, a Flash Memory unit (Flash Memory DIE), the controller operates the plurality of data storage units 321 in parallel through a plurality of channels (channels), so as to greatly increase bandwidth of a bottom layer, for example, 8 channels may be provided between the controller and the data storage unit 321, each channel mounts one data storage unit 321, and the number of parallel units of the bottom layer may be increased or a data storage unit 321 with a high speed may be selected, the controller connects, for example, 8 data storage units 321 through, for example, 8 channels, each data storage unit includes a plurality of data storage sub-units (blocks) 322, and the data storage sub-units 322 may execute commands in a certain order.
In an embodiment of the present invention, referring to fig. 2, in the embodiment, the user 200 accesses the data storage device 300 through a Logical Block Address (LBA), an operating system generally accesses the data storage device 300 by taking 4K as a unit, and a basic unit of the user 200 accessing the data storage device 300 is called a user Page (Host Page). In the data storage device 300, the FLASH memory chip (FLASH) is accessed between the controller 310 and the memory cell array (e.g., FLASH chip, FLASH) using a FLASH Page (FLASH Page) as a Physical Page (Physical Page) as a basic unit. When the user end 200 writes one user Page (Host Page), the controller 310 will find one Physical Page (Physical Page) to write the user data, and such a mapping (Map) is recorded inside the data storage device 300. With such a mapping relationship, the data storage device 300 knows from which position of the FLASH memory chip (FLASH) the data is read the next time the user side 200 needs to read a certain user Page (Host Page).
Referring to fig. 4, a method for controlling a data storage device 300 according to the present invention at least includes dividing a memory cell array 320 into a plurality of regions, wherein the memory cell array 320 includes a plurality of data storage cells 321 (step S1), allocating different regions to different clients 200 through a controller 310, and the controller 310 is connected to the memory cell array 320 (step S2). The above operations can divide different data storage units 321, for example, Flash Memory units (Flash Memory DIE) into different regions, where the region includes at least one of the data storage units 321, the plurality of regions may include data storage units 321 with different quantities, may also include data storage units 321 with the same quantity, and may also include a part of data storage units 321 with the same quantity, all of which may be formulated according to the requirements of the client, and the user side 200 applies for regions with different space sizes according to its own requirements, so that the maximum utilization of the storage unit array 320 can be achieved, and each user side 200 has its own storage space, and the operational influence between them does not occur, which greatly improves the efficiency of the overall device.
Referring to fig. 4, in the present embodiment, step 1 includes: the user terminal 200 defines, through the controller 310, attributes of regions to be supported by the data storage device 300, including: the number of the data storage units 321 occupied by the user end 200 and the index (tag) of the user end 200 supported by the area. The user end 200 defines the number of data storage units 321 in the region to be supported by the data storage device 300 through the controller 310. The user end 200 defines the attribute of the data storage unit 321 that needs to be supported by the data storage device 300 through the controller 310, so that the entire data storage device 300 is initially configured to support the state of using different data storage units 321 for different user ends 200, that is, the user end 200 performs data interaction with the storage unit array 320 through indexing, and divides the data storage units 321 into different areas, so that different user ends 200 occupy their own storage space, and the operations between them will not affect each other. The attributes of the data storage unit 321 include: the index of the user end 200 supported by the data storage unit 321 and the size of the space occupied by the user end 200, specifically, the user end 200 reads the corresponding index through the controller 310, and writes the command data into the corresponding data storage unit 321 through the index. The step of the client 200 defining the number of data storage units 321 in the block to be supported by the data storage device 300 through the controller 310 specifically includes: firstly, the user end 200 queries the number of the data storage units 321 which are already supported, the remaining applicable space size and all the applied indexes, then the user end 200 queries the number of the data storage strings in the region corresponding to the indexes through the indexes, then the user end 200 inputs the indexes and the space size to apply for the indexes and the corresponding spaces of the region, finally, if the indexes are applied for, the corresponding space size is changed into the space size applied for this time, and if the applied space exceeds the remaining space, the user end 200 orders to stop. The user 200 issues commands through the controller 310 to define the number of the data storage units 321 that the data storage device 300 needs to support, because the demand of the user 200 is too small, it is not necessary to divide all the data storage units 321 into different regions, but only needs to divide part of the data storage units 321 into several regions to support the operations of different users, which saves space, improves efficiency, and also relatively improves the lifetime of the storage unit array.
In this embodiment, the indexes have different numbers, and the ue can use the numbers of the indexes to quickly locate the corresponding area through the controller.
In an example, the index may be stored by using a registration key (Double Word), for example, because all bytes 8 to 15 in DWORD2, DWORD3, and DWORD13 in the registration key are reserved bits, the index number of the area may be input, and after the controller receives and parses out the corresponding index, the controller may write the command data of the user end into the data storage string in the area corresponding to the index, and if the input index does not meet the specification, for example, exceeds the maximum index of the application or does not have the index of the application, the command data is written into the default index.
Referring to fig. 4, in the present embodiment, step S2 includes: the user end defines, through the controller 310, the data storage unit 321 to be released by the data storage device 300, and the user end 200 sends a write command, so that the controller 310 causes the data storage device 300 to write the command data into the corresponding data storage unit 321, or the user end 200 sends a write command, and the controller 310 causes the data storage device 300 to extract the command data from the corresponding data storage unit 321. The user terminal 200 transmits a read/write command to write/extract command data to/from the corresponding data storage unit 321 through the controller 310 in step S2. Specifically, the user side 200 defines the user side index in issuing a read/write command; the controller 310 receives the command and analyzes the index of the user terminal 200; the controller 310 reads the index input by the corresponding user terminal 200, and writes the command data into the corresponding data storage unit 321 or extracts the command data from the corresponding data storage unit 321 through the index input by the user terminal 200. In the method, the data storage unit 321 in the storage unit array 320 is divided into a plurality of regions, and then different user terminals 200 are allocated to different regions, so that the read-write operations between different user terminals 200 can be unaffected, the efficiency of the whole device is greatly improved, and the service life of the whole device is prolonged.
Referring to fig. 4, in this embodiment, when the user end 200 issues a command to the controller 310, an index of a region is input to the controller 310, and after the controller 310 receives the command and parses out a region corresponding to the corresponding index, the command data may be written into a data storage string included in the region corresponding to the index, and if the input index does not meet a specification, for example, exceeds an applied index maximum value or does not have an applied index at this time, the command data is written into a default index.
Referring to fig. 4, in the present embodiment, a method for controlling a data storage device includes the following steps: first, the client uses a Command data (Admin vector Specific Command), such as C0h, to query the number of supported data storage units 321, the amount of space that can be applied, and the total index that has been applied. Secondly, the client uses a Command data (Admin vector Specific Command), such as C1h, to input the index number and query the space size of the region corresponding to the index. And the user side uses a Command data (Admin vector Specific Command), such as C2h, to input the index number and the space size, the index of the application area and the corresponding space size, if the index is already applied, the corresponding space size is changed to the space size of the application, and if the application space exceeds the remaining space, the Command is stopped. Finally, the ue inputs an index number using a Command data (Admin vector Specific Command), such as C3h, to release the area corresponding to the index, and if the index is invalid, the Command stops.
As shown in fig. 4, in the present embodiment, the indexes correspond to respective areas, and each area includes not less than one data storage unit 321.
As shown in fig. 4, in this embodiment, the user end 200 is further accompanied by a command with an index when sending the command, so that the controller 310 can quickly locate the index of the user end to the data storage unit 321 in the corresponding area after analyzing the index when receiving the command data, thereby increasing the speed of data interaction.
Referring to fig. 5 to fig. 6, in the present embodiment, a control method of the data storage device 300 of the invention is illustrated, and it is assumed that a Solid State Drive (SSD) has four data storage units 321, where the data storage units 321 may be Flash Memory units (Flash Memory DIE), and in this embodiment, the data storage sub-unit 322 is, for example, each block (block) included in a Flash Memory unit (Flash Memory DIE). For example, each Flash memory unit (Flash memory DIE) has n +1 blocks (blocks), and Flash memory unit DIE0, Flash memory unit DIE1, Flash memory unit DIE2, and Flash memory unit DIE3 can process Nand Flash (Nand Flash) commands simultaneously and can be regarded as parallel units. Therefore, in general, blocks (blocks) with the same sequence number of each Flash Memory cell (Flash Memory DIE) are grouped into a Super Block (Super Block), and as shown in fig. 5, a Block0 is defined as a Super Block0(Super Block0) which includes blocks 0 of all Flash Memory cells (Flash Memory DIE). When receiving a write command from the user 200, the Solid State Drive (SSD) first writes each flash memory unit (flash memory DIE) of the Block 0. Block1 is rewritten. Generally, referring to fig. 6, if there are two clients a and B, the storage manner of the data of the clients a and B on the Solid State Drive (SSD) is shown in fig. 7. Commands on each Flash Memory unit (Flash Memory DIE) are sequentially executed, for example, when writing a5, B3 does not complete the command action yet, a5 needs to wait for B3 to complete the command action before writing, for example, when writing a6, user B needs to read and write B1, and the reading action at this time is also blocked by the previous writing action of a6, so that the operations of the user a and B on the nand Flash Memory are affected, and the efficiency of the whole device is reduced. In the present invention, a Solid State Drive (SSD) is allowed to allocate different Flash Memory units (Flash Memory DIE) to a user terminal 200 according to different users, in an embodiment, a Flash Memory unit DIE0 and a Flash Memory unit DIE1 are allocated to a user terminal a, and a Flash Memory unit DIE2 and a Flash Memory unit DIE3 are allocated to a user terminal B, as shown in fig. 8, so that mutual influence between users can be avoided. Compared with the user side, the operations of reading and writing are self-controllable and do not affect the user side, so that the operations can be performed in the data storage units 321 allocated to the user side without affecting each other.
Referring to fig. 7, in the embodiment, the user end 200 may set the size of the area by itself, each area may include different numbers of data storage units 321, and the data storage units 321 may be, for example, Flash Memory units (Flash Memory DIE), for example, Flash Memory units DIE0, DIE1, and DIE2 may be allocated to the user end a, and Flash Memory units DIE3 may be allocated only to the user end B. The feature of self-allocating the number of the data storage units 321 in the region can greatly improve the operation efficiency of the whole device and increase the service life of the whole device.
In this embodiment, after receiving the internal operation information of the user terminal 200, the memory cell array 320 can be implemented to perform the internal operation. Internal operations may include, for example, plasticity of internal data, timing calibration, process voltage temperature compensation, various operations associated with internal data transmission, or other operations. In the present embodiment, all or part of the internal operation may be performed according to the internal operation approval/rejection information.
In various embodiments, referring to FIG. 8, the data storage device system 100 described herein includes a novel architecture for controlling a mass storage module comprising a data storage device 300. The entire system is shown in highly schematic form in fig. 8. As with the other block diagrams herein, the components illustrated in FIG. 8 are conceptual in nature, and they illustrate the nature of the interrelationship between these functional blocks and are not intended to represent an actual physical circuit level implementation.
In various embodiments, referring to fig. 8, the client 200 may be configured with a different number of hosts, such as shown in fig. 8, and the hosts 610 and 620 are conventional host devices, such as two servers using mass storage resources or two bus adapters serving one such server. In some protocols, each host may support multiple initiators (initiators). In a SCSI-based system, the initiator is the endpoint on the host side for data transfer and may constitute a separate physical device or process.
Referring to fig. 8, the memory cell array 320 in this embodiment may be represented by a circuit board 630 (represented by dashed lines), the circuit board 630 including one or more PCBs. For example, it may comprise a single PCB circuit board or multiple circuit boards 630 connected together in a parent-child configuration. In various embodiments, circuit board 630 is designed such that from the perspective of hosts 610 and 620, circuit board 630 appears as a rotating disk mass storage device.
In some embodiments, the controller is, for example, a Solid State Disk (SSD) controller as shown in fig. 8, and Solid State Disk (SSD) controller 640 represents a single integrated circuit device attached to circuit board 630 that operates at a different frequency, for example, 200 MHz. In other embodiments, Solid State Disk (SSD) controller 640 may be comprised of more than one integrated circuit device without departing from the inventive principles described herein.
As shown in fig. 8, in various embodiments, the data path (DRAM)650 communicates with the Solid State Disk (SSD) controller 640, but it does not have any direct connection to any other component in the system.
It is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again. In the embodiments provided in the present invention, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present invention may be embodied in the form of a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present invention. And the aforementioned storage medium includes: various media capable of storing program codes, such as a usb disk, a removable hard disk, a read-only memory (ROM), a Random Access Memory (RAM), a magnetic disk, and an optical disk.
The above disclosure of selected embodiments of the invention is intended to be illustrative only. The preferred embodiments are not intended to be exhaustive or to limit the invention to the precise embodiments disclosed. Obviously, many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and the practical application, to thereby enable others skilled in the art to best utilize the invention. The invention is limited only by the claims and their full scope and equivalents.

Claims (7)

1. A data storage device, comprising:
a memory cell array including a plurality of data memory cells divided into a plurality of regions; and
the controller is connected with the storage unit array, and the controller distributes different areas to different user terminals according to different user terminal commands;
wherein the step of dividing the memory cell array into a plurality of the regions comprises:
the user end defines the attribute of the region which needs to be supported by the data storage device through the controller;
the user side defines the number of data storage units in an area which needs to be supported by the data storage device through the controller;
wherein the attributes include: the number of the indexes of the user terminals supported by the region and the number of the data storage units occupied by the user terminals;
wherein the user side defines, via the controller, attributes of the data storage units that the data storage device is required to support, such that the entire data storage device is initially configured to support a state in which different data storage units are used by different user sides;
wherein the attributes of the data storage unit include: the index of the user terminal supported by the data storage unit and the size of the space occupied by the user terminal;
the controller writes command data of a user side into a data storage string in the corresponding area of the index after receiving and analyzing the corresponding index, and writes the command data into the default index if the input index does not meet the specification;
when the user side issues a command to the controller, the controller inputs indexes of areas, after receiving the command and analyzing the corresponding area corresponding to the index, the controller writes command data into a data storage string contained in the area corresponding to the index, and if the input index does not meet the specification, the command data is written into the default index;
the user side defines the data storage unit which needs to be released by the data storage device through the controller, and the user side sends a write command, so that the data storage device writes command data into the corresponding data storage unit through the controller, or the user side sends a read command, so that the data storage device extracts the command data from the corresponding data storage unit through the controller;
wherein, the user terminal also attaches the command with the index when sending the command.
2. A data storage device according to claim 1, wherein said region contains at least one of said data storage units.
3. A data storage device as claimed in claim 1 wherein the number of said data storage units in at least two of said plurality of regions is the same.
4. A data storage device according to claim 1, further comprising a buffer means for storing data required by the operating instructions running on the controller.
5. A method of controlling a data storage device, comprising:
dividing a memory cell array into a plurality of regions, wherein the memory cell array comprises a plurality of data memory cells;
distributing different areas to different user sides through a controller, wherein the controller is connected with the storage unit array;
wherein the memory cell array is divided into a plurality of regions, wherein the memory cell array including a plurality of data memory cells includes:
the user end defines the attribute of the region which needs to be supported by the data storage device through the controller;
the user side defines the number of data storage units in an area which needs to be supported by the data storage device through the controller;
wherein the attributes include: the number of the indexes of the user terminals supported by the region and the number of the data storage units occupied by the user terminals;
wherein the user side defines, via the controller, attributes of the data storage units that the data storage device is required to support, such that the entire data storage device is initially configured to support a state in which different data storage units are used by different user sides;
wherein the attributes of the data storage unit include: the index of the user terminal supported by the data storage unit and the size of the space occupied by the user terminal;
the controller writes command data of a user side into a data storage string in the corresponding area of the index after receiving and analyzing the corresponding index, and writes the command data into the default index if the input index does not meet the specification;
when the user side issues a command to the controller, the controller inputs indexes of areas, after receiving the command and analyzing the corresponding area corresponding to the index, the controller writes command data into a data storage string contained in the area corresponding to the index, and if the input index does not meet the specification, the command data is written into the default index;
the user side defines the data storage unit which needs to be released by the data storage device through the controller, and the user side sends a write command, so that the data storage device writes command data into the corresponding data storage unit through the controller, or the user side sends a read command, so that the data storage device extracts the command data from the corresponding data storage unit through the controller;
wherein, the user terminal also attaches the command with the index when sending the command.
6. The method of claim 5, comprising:
and the user side performs data interaction with the storage unit array through the index.
7. A data storage device system, comprising:
a user side; and
a data storage device connected to the user side, the data storage device comprising:
a memory cell array including a plurality of data memory cells divided into a plurality of regions; and
the controller is connected with the storage unit array, and the controller distributes different areas to different user terminals according to different user terminal commands;
wherein the step of dividing the memory cell array into a plurality of the regions comprises:
the user end defines the attribute of the region which needs to be supported by the data storage device through the controller;
the user side defines the number of data storage units in an area which needs to be supported by the data storage device through the controller;
wherein the attributes include: the number of the indexes of the user terminals supported by the region and the number of the data storage units occupied by the user terminals;
wherein the user side defines, via the controller, attributes of the data storage units that the data storage device is required to support, such that the entire data storage device is initially configured to support a state in which different data storage units are used by different user sides;
wherein the attributes of the data storage unit include: the index of the user terminal supported by the data storage unit and the size of the space occupied by the user terminal;
the controller writes command data of a user side into a data storage string in the corresponding area of the index after receiving and analyzing the corresponding index, and writes the command data into the default index if the input index does not meet the specification;
when the user side issues a command to the controller, the controller inputs indexes of areas, after receiving the command and analyzing the corresponding area corresponding to the index, the controller writes command data into a data storage string contained in the area corresponding to the index, and if the input index does not meet the specification, the command data is written into the default index;
the user side defines the data storage unit which needs to be released by the data storage device through the controller, and the user side sends a write command, so that the data storage device writes command data into the corresponding data storage unit through the controller, or the user side sends a read command, so that the data storage device extracts the command data from the corresponding data storage unit through the controller;
wherein, the user terminal also attaches the command with the index when sending the command.
CN202010088767.XA 2020-02-12 2020-02-12 Data storage device, control method thereof and data storage device system Active CN111309643B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010088767.XA CN111309643B (en) 2020-02-12 2020-02-12 Data storage device, control method thereof and data storage device system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010088767.XA CN111309643B (en) 2020-02-12 2020-02-12 Data storage device, control method thereof and data storage device system

Publications (2)

Publication Number Publication Date
CN111309643A CN111309643A (en) 2020-06-19
CN111309643B true CN111309643B (en) 2021-05-18

Family

ID=71150927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010088767.XA Active CN111309643B (en) 2020-02-12 2020-02-12 Data storage device, control method thereof and data storage device system

Country Status (1)

Country Link
CN (1) CN111309643B (en)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100383761C (en) * 2005-03-10 2008-04-23 联想(北京)有限公司 Method for setting hard disk physical partition
KR20090008519A (en) * 2007-07-18 2009-01-22 삼성전자주식회사 Multi-path accessible semiconductor memory device having shared register and managing method therefore
KR102031661B1 (en) * 2012-10-23 2019-10-14 삼성전자주식회사 Data storage device and controller, and operation method of data storage device
CN107025176A (en) * 2016-02-01 2017-08-08 北京同方微电子有限公司 One kind adjustment Large Copacity USIM massage storage subregion capacity systems and method
KR20180047329A (en) * 2016-10-31 2018-05-10 에스케이하이닉스 주식회사 Memory system and opration method for the same
JP6709180B2 (en) * 2017-02-28 2020-06-10 キオクシア株式会社 Memory system and control method
US10241716B2 (en) * 2017-06-30 2019-03-26 Microsoft Technology Licensing, Llc Global occupancy aggregator for global garbage collection scheduling
CN108664287B (en) * 2018-05-11 2022-04-05 腾讯科技(深圳)有限公司 Method, device, terminal and storage medium for guiding output operation

Also Published As

Publication number Publication date
CN111309643A (en) 2020-06-19

Similar Documents

Publication Publication Date Title
US11640353B2 (en) Memory system, data storage device, user device and data management method thereof
US20210326280A1 (en) Storage device for interfacing with host and method of operating the host and the storage device
KR20190087217A (en) Data storage device and operating method thereof
US9244619B2 (en) Method of managing data storage device and data storage device
KR20200022118A (en) Data storage device and operating method thereof
KR20190057887A (en) Data storage device and operating method thereof
KR20190090635A (en) Data storage device and operating method thereof
US20220253388A1 (en) Method of data caching and device caching data
KR102507140B1 (en) Data storage device and operating method thereof
US20170357462A1 (en) Method and apparatus for improving performance of sequential logging in a storage device
KR20190120573A (en) Memory system, data processing system and operating method of the memory system
KR20200025184A (en) Nonvolatile memory device, data storage apparatus including the same and operating method thereof
KR20170051563A (en) Data storage device and operating method thereof
KR20200020464A (en) Data storage device and operating method thereof
KR20200139433A (en) Operating method of controller and memory system
KR20200121645A (en) Controller, operating method thereof and memory system
KR20200114212A (en) Data storage device and operating method thereof
KR102596964B1 (en) Data storage device capable of changing map cache buffer size
US10466938B2 (en) Non-volatile memory system using a plurality of mapping units and operating method thereof
KR20200114086A (en) Controller, memory system and operating method thereof
KR20170128012A (en) Flash-based storage and computing device
KR20190091035A (en) Memory system and operating method thereof
KR20210156090A (en) Storage device and operating method thereof
CN111309643B (en) Data storage device, control method thereof and data storage device system
KR102434840B1 (en) Data storage device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant