CN103150261A - Method and device for simultaneously accessing multiple solid-state disks - Google Patents

Method and device for simultaneously accessing multiple solid-state disks Download PDF

Info

Publication number
CN103150261A
CN103150261A CN2013100767875A CN201310076787A CN103150261A CN 103150261 A CN103150261 A CN 103150261A CN 2013100767875 A CN2013100767875 A CN 2013100767875A CN 201310076787 A CN201310076787 A CN 201310076787A CN 103150261 A CN103150261 A CN 103150261A
Authority
CN
China
Prior art keywords
data
storage unit
physical address
unit group
checking data
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.)
Granted
Application number
CN2013100767875A
Other languages
Chinese (zh)
Other versions
CN103150261B (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.)
Beijing Memblaze Technology Co Ltd
Original Assignee
Beijing Memblaze 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 Beijing Memblaze Technology Co Ltd filed Critical Beijing Memblaze Technology Co Ltd
Priority to CN201310076787.5A priority Critical patent/CN103150261B/en
Publication of CN103150261A publication Critical patent/CN103150261A/en
Priority to PCT/CN2014/073155 priority patent/WO2014139390A1/en
Application granted granted Critical
Publication of CN103150261B publication Critical patent/CN103150261B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The invention provides a method and a device for accessing multiple drivers of storage equipment. The method comprises the steps of receiving a request of writing first data in a first logical address for the storage equipment, generating a first physical address for the first logical address, generating a write-in command indicating that the first data is written in the first physical address, confirming whether verification data is generated, if so, generating first verification data based on the first data, and writing the first verification data in a second physical address.

Description

Be used for accessing simultaneously the method and apparatus of a plurality of solid-state disks
Technical field
The present invention relates to solid storage device (Solid Storage Device, SSD), more specifically, the present invention relates to for the method and apparatus of accessing simultaneously a plurality of solid-state disks.
Background technology
Similar with the mechanical type hard disk, solid storage device is also large capacity, the non-volatile memory device for computer system.Solid storage device generally with flash memory (Flash) as storage medium.High performance solid storage device is used to high-performance computer.
Memory target (Target) is one or more logical blocks (Logic Unit) of shared chip enable (CE, the Chip Enable) signal in the nand flash memory encapsulation.Each logical block has logical unit number (LUN, LogicUnit Number).Can comprise one or more tube cores (Die) in the nand flash memory encapsulation.Typically, logical block is corresponding to single tube core.Logical block can comprise a plurality of planes (Plane).A plurality of planes in logical block can parallel access, and a plurality of logical blocks in nand flash memory chip fill order and report condition independently of one another.Can from http://www.micron.com/~/ " Open NAND Flash Interface Specification(Revision3.0) " that media/Documents/Products/Other%20Documents/ONFI3_0Gold.a shx obtains, implication about target (target), logical block, LUN, plane (Plane) is provided, and it is the part of prior art.
Solid storage device can have the expansion card shape, can be installed to PCIE or similar interface on mainboard.Solid storage device also can have 3.5,2.5 or 1.8 inches driver shapes, can be installed in frame or dish battle array equipment, and it generally is called as solid-state disk (Solid State Disk).
Publication number is that the Chinese patent application of CN102656567A discloses the data management in solid-state memory.Referring to Fig. 1, one group of page of solid-state memory is called as " step pitch (stride) ", and each step pitch comprises one group of page from each passage, and wherein one of each passage group of page is called as " bar " (strip).For having identified LBA(Logic Block Address, LBA (Logical Block Addressing)) write request, be implemented in step pitch from LBA to PBA(Physical Block Address, physical block address) mapping, and fill step pitch interior each (id in Fig. 1 is respectively 31,52,44,67 bar).Can be continuous or parallel to the filling of a plurality of in step pitch.Like this, with RAID(Redundant Array of Independent Disks, Redundant Array of Independent Disks (RAID)) pattern is incorporated in solid storage device, improved the performance and reliability of solid storage device.
Yet, a plurality of solid-state disks of possibility or a plurality of storage card in memory device, each solid-state disk or storage card may have different capacity and performance, and as time goes by, each solid-state disk or storage card also can show different characteristics.When data writing, consider that the particular characteristic of each solid-state disk or storage card will help to improve the performance of memory device.And data volume entrained in write request may be different from the data capacity of " step pitch ".Need to provide corresponding means to mate capacity from the storage unit of the request of access of client and memory device.
Summary of the invention
The invention solves in the raid storage devices that solid-state disk forms and write scale-up problem, extended the serviceable life of memory device.
According to a first aspect of the invention, provide a kind of method of a plurality of drivers for accessing storage device, described method comprises: receive the first data are write request for the first logical address of described memory device;
For described the first logical address generates the first physical address; Generation writes order, and its indication writes described the first physical address with described the first data; Determine whether to generate checking data; If generate the first checking data based on described the first data, and described the first checking data write the second physical address.
Method according to a first aspect of the invention also comprises: storing metadata on one or more in described a plurality of drivers, described the first physical address of described metadata indication, described the second physical address have incidence relation.
Method according to a first aspect of the invention, wherein by selecting the first driver in described a plurality of driver to come for described the first logical address generates the first physical address, described the first physical address is indicated the memory location in described the first driver.
Method according to a first aspect of the invention, wherein provide write pointer for each driver, the physical address of write pointer indication data writing based on described first physical address of write pointer generation of selected the first driver, and increases progressively the write pointer of described the first driver.
Method according to a first aspect of the invention, wherein in response to receiving, the first data are write request for the first logical address of described memory device, memory allocated unit group, described storage sets comprises a plurality of storage unit, and each in described a plurality of storage unit is positioned at one of described a plurality of drivers.
Method according to a first aspect of the invention, wherein said storage unit are one or more pages.
Method according to a first aspect of the invention, wherein provide write pointer for the storage unit group, a storage unit in the described storage unit group of write pointer indication, generate described the first physical address based on the write pointer of the storage unit group of distributing, and make another storage unit in the described storage unit group of write pointer indication of the storage unit group of distributing.
Method according to a first aspect of the invention, wherein in response to memory allocated unit group, state based on a plurality of drivers at each storage unit place of described storage unit group, select a storage unit to come for described the first logical address generates the first physical address from described storage unit group, described the first selected storage unit of physical address indication.
Method according to a first aspect of the invention, wherein for each driver in described a plurality of drivers provides write queue, be used for will write order send to driver before memory writer command.
Method according to a first aspect of the invention if wherein received for N data that generate checking data, is determined to generate checking data, and N is natural number.
Method according to a first aspect of the invention, if wherein not yet receive for N data that generate checking data, the filling tentation data is formed for generating N data of checking data, and determines to generate checking data.
Method according to a first aspect of the invention if wherein not yet receive for N data that generate checking data, operates to be formed for generating N data of checking data by the execution garbage reclamation, and determines to generate checking data.
Method according to a first aspect of the invention wherein generates checking data at the described request indicating.
Method according to a first aspect of the invention, the value of the described N of wherein said request indicating.
Method according to a first aspect of the invention, if wherein not yet receive for N data that generate checking data, and described request indicating generation checking data, padding data is formed for generating N data of checking data, and generates checking data.
Method according to a first aspect of the invention if wherein not yet receive for N data that generate checking data, and forces the event of calculation check data to occur, and padding data is formed for generating N data of checking data, and generates checking data.
Method according to a first aspect of the invention, if wherein not yet receive for N data that generate checking data, and the described request indicating generates checking data, carries out N the data that garbage reclamation operates to be formed for generating checking data, and generates checking data.
Method according to a first aspect of the invention, if wherein not yet receive for N data that generate checking data, and force the event of calculation check data to occur, carry out N the data that garbage reclamation operates to be formed for generating checking data, and generate checking data.
According to a second aspect of the invention, provide a kind of device of a plurality of drivers for accessing storage device, described device comprises: be used for receiving the first data are write module for the request of the first logical address of described memory device; Be used to described the first logical address to generate the module of the first physical address; Be used for generating the module that writes order, said write order indication writes described the first physical address with described the first data; Be used for determining whether to generate the module of checking data; Be used for generating the first checking data in the situation that determine to generate checking data based on described the first data, and described the first checking data write the module of the second physical address.
According to a third aspect of the invention we, provide a kind of memory device, a plurality of drivers that comprise network adapter, controller and be coupled to described controller; Described network adapter is coupled to network with described memory device, and receives the request of access from client, and described request of access indication writes the first logical address for described memory device with the first data; Described controller is that described the first logical address generates the first physical address, and generates and write order and send to one of described a plurality of drivers, and its indication writes described the first physical address with described the first data; Described controller also determines whether to generate checking data, if, generating the first checking data based on described the first data, and generate second and write order and send to one of described a plurality of drivers, its indication writes the second physical address with described the first checking data.
Memory device according to a third aspect of the invention we also comprises: described controller is one or more in described a plurality of drivers with metadata store, and described the first physical address of described metadata indication, described the second physical address have incidence relation.
Memory device according to a third aspect of the invention we, wherein said controller is by selecting the first driver in described a plurality of driver to come for described the first logical address generates the first physical address, and described the first physical address is indicated the memory location in described the first driver.
Memory device is according to a third aspect of the invention we wherein safeguarded write pointer for each driver in described controller, the physical address of write pointer indication data writing; Described controller also generates described the first physical address based on the write pointer of selected the first driver, and the write pointer of described the first driver is increased progressively.
Memory device according to a third aspect of the invention we, wherein said controller writes request for the first logical address of described memory device in response to receiving with the first data, memory allocated unit group, described storage sets comprises a plurality of storage unit, and each in described a plurality of storage unit is positioned at one of described a plurality of drivers.
Memory device according to a third aspect of the invention we, wherein said controller is that the storage unit group is safeguarded write pointer, a storage unit in the described storage unit group of write pointer indication, described controller generates described the first physical address based on the write pointer of the storage unit group of distributing, and makes another storage unit in the described storage unit group of write pointer indication of the storage unit group of distributing.
Memory device according to a third aspect of the invention we, wherein in response to memory allocated unit group, the state of a plurality of drivers at each storage unit place of the described storage unit group of described controller inquiry, and select a storage unit to come for described the first logical address generates the first physical address from described storage unit group based on described state, described the first selected storage unit of physical address indication.
Memory device according to a third aspect of the invention we, wherein said controller provides write queue for each driver in described a plurality of drivers, described write queue be used for will write order send to driver before memory writer command.
Memory device according to a third aspect of the invention we, if wherein described memory device has been received for N data that generate checking data, described controller is determined to generate checking data, N is natural number.
Memory device according to a third aspect of the invention we, if wherein described memory device is not yet received for N data that generate checking data, described controller is filled N the data that tentation data is formed for generating checking data, and determines to generate checking data.
Memory device according to a third aspect of the invention we, if wherein described memory device is not yet received for N data that generate checking data, described controller initiates to operate to be formed for generating N data of checking data for one or more garbage reclamation of described a plurality of drivers, and determines to generate checking data.
Memory device according to a third aspect of the invention we, the value of the described N of wherein said request indicating.
Memory device according to a third aspect of the invention we wherein generates checking data at the described request indicating.
Memory device according to a third aspect of the invention we, the value of the described N of wherein said request indicating.
Memory device according to a third aspect of the invention we, if wherein not yet receive for N data that generate checking data, and described request indicating generation checking data, padding data is formed for generating N data of checking data, and generates checking data.
Memory device according to a third aspect of the invention we if wherein not yet receive for N data that generate checking data, and forces the event of calculation check data to occur, and padding data is formed for generating N data of checking data, and generates checking data.
Memory device according to a third aspect of the invention we, if wherein not yet receive for N data that generate checking data, and the described request indicating generates checking data, carries out N the data that garbage reclamation operates to be formed for generating checking data, and generates checking data.
Memory device according to a third aspect of the invention we, if wherein not yet receive for N data that generate checking data, and force the event of calculation check data to occur, carry out N the data that garbage reclamation operates to be formed for generating checking data, and generate checking data.
According to a forth aspect of the invention, provide a kind of computer system, a plurality of drivers that comprise mainboard, are arranged in expansion card, the CPU on mainboard and are coupled to described expansion card; Described CPU sends to described expansion card to the request that the first data is write the first logical address; Described expansion card is that described the first logical address generates the first physical address, and generates and write order and send to one of described a plurality of drivers, and said write order indication writes described the first physical address with described the first data; Described expansion card also determines whether to generate checking data, if, generate the first checking data based on described the first data, and generate second and write order and send to one of described a plurality of drivers, described second writes the order indication writes the second physical address with described the first checking data.
Computer system according to a forth aspect of the invention also comprises: described expansion card is one or more in described a plurality of drivers with metadata store, and described the first physical address of described metadata indication, described the second physical address have incidence relation.
Computer system according to a forth aspect of the invention, wherein said expansion card is by selecting the first driver in described a plurality of driver to come for described the first logical address generates the first physical address, and described the first physical address is indicated the memory location in described the first driver.
Computer system is according to a forth aspect of the invention wherein safeguarded write pointer for each driver in described expansion card, the physical address of write pointer indication data writing; Described expansion card also generates described the first physical address based on the write pointer of selected the first driver, and the write pointer of described the first driver is increased progressively.
Computer system according to a forth aspect of the invention, wherein said expansion card writes request for the first logical address of described memory device in response to receiving with the first data, memory allocated unit group, described storage sets comprises a plurality of storage unit, and each in described a plurality of storage unit is positioned at one of described a plurality of drivers.
Computer system according to a forth aspect of the invention, wherein said expansion card is that the storage unit group is safeguarded write pointer, a storage unit in the described storage unit group of write pointer indication, described expansion card generates described the first physical address based on the write pointer of the storage unit group of distributing, and makes another storage unit in the described storage unit group of write pointer indication of the storage unit group of distributing.
Computer system according to a forth aspect of the invention, wherein in response to memory allocated unit group, the state of a plurality of drivers at each storage unit place of the described storage unit group of described expansion card inquiry, and select a storage unit to come for described the first logical address generates the first physical address from described storage unit group based on described state, described the first selected storage unit of physical address indication.
Computer system according to a forth aspect of the invention, wherein said expansion card provides write queue for each driver in described a plurality of drivers, described write queue be used for will write order send to driver before memory writer command.
Computer system according to a forth aspect of the invention if wherein described expansion card has been received for N data that generate checking data, is determined to generate checking data, and N is natural number.
Computer system according to a forth aspect of the invention, if wherein described expansion card is not yet received for N data that generate checking data, described expansion card is filled N the data that tentation data is formed for generating checking data, and determines to generate checking data.
Computer system according to a forth aspect of the invention, if wherein described expansion card is not yet received for N data that generate checking data, described expansion card initiates to operate to be formed for generating N data of checking data for one or more garbage reclamation of described a plurality of drivers, and determines to generate checking data.
Computer system according to a forth aspect of the invention, the value of the described N of wherein said request indicating.
Computer system according to a forth aspect of the invention, the value of the described N of wherein said request indicating.
Computer system according to a forth aspect of the invention wherein generates checking data at the described request indicating.
Computer system according to a forth aspect of the invention, the value of the described N of wherein said request indicating.
Computer system according to a forth aspect of the invention, if wherein not yet receive for N data that generate checking data, and the described request indicating generates checking data, and padding data is formed for generating N data of checking data, and generates checking data.
Computer system according to a forth aspect of the invention, if wherein not yet receive for N data that generate checking data, and force the event of calculation check data to occur, padding data is formed for generating N data of checking data, and generates checking data.
Computer system according to a forth aspect of the invention, if wherein not yet receive for N data that generate checking data, and the described request indicating generates checking data, carries out N the data that garbage reclamation operates to be formed for generating checking data, and generates checking data.
Computer system according to a forth aspect of the invention, if wherein not yet receive for N data that generate checking data, and force the event of calculation check data to occur, carry out N the data that garbage reclamation operates to be formed for generating checking data, and generate checking data.
Description of drawings
When reading together with accompanying drawing, by the reference back detailed description to the embodiment of illustrating property, will understand best the present invention and preferably use pattern and its further purpose and advantage, wherein accompanying drawing comprises:
Fig. 1 has showed the Organization of Data of solid state hard disc of the prior art;
Fig. 2 is the Organization of Data of memory device according to an embodiment of the invention;
Fig. 3 is the block diagram according to the computer system of the embodiment of the present invention;
Fig. 4 is the process flow diagram according to the method for a plurality of drivers of access of the embodiment of the present invention;
Fig. 5 is the process flow diagram of method of a plurality of drivers of access of the further embodiment according to the present invention;
Fig. 6 is the further process flow diagram of the method for a plurality of drivers of access of embodiment still according to the present invention; And
Fig. 7 is the block diagram according to the memory device of the embodiment of the present invention.
Embodiment
Fig. 2 is the Organization of Data of memory device according to an embodiment of the invention.Memory device comprises solid-state disk 200, solid-state disk 220 ... solid-state disk 260.Each solid-state disk can be to have standard-sized 3.5,2.5 or 1.8 inches drivers.Solid-state disk 200 can comprise flash chip 201 and flash chip 202.Solid-state disk 220 comprises flash chip 221, and solid-state disk 260 comprises flash chip 261.Solid-state disk 200 also can comprise the flash chip of varying number.And solid-state disk 200, solid-state disk 220 and solid-state disk 260 can comprise respectively the flash chip of varying number and/or different capabilities.Flash chip in solid-state disk can be organized as a plurality of passages, to accept or reject between the concurrent access of the interface pin quantity of being used and a plurality of flash chips.For example, at application number for 201210448894.1, provide the multiple mode that flash chip is organized as passage in the Chinese patent application of 201210449387.X.
As an example, flash chip 201 comprises a plurality of, for example piece 0, piece 1, piece 2 and piece 3.Also can comprise the piece of other quantity in flash chip.Comprise a plurality of pages at each piece.For nand flash memory, carry out reading and writing operations take page as unit, and implement erase operation take piece as unit, this is that physical arrangement by nand flash memory determines.As an example, flash chip 201 also comprises plane 0 and plane 1.Plane 0 comprises piece 0 and piece 2, and plane 1 comprises piece 1 and piece 3.Plane 0 has page register separately with plane 1, makes the piece that is positioned at plane 0 and the piece that is positioned at plane 1 can parallel work-flow.Flash chip can have the page of varying number.Flash chip can also comprise one or more tube cores.
According to embodiments of the invention, together with the page 261 of the page 211 of solid-state disk 200, the page 231 of solid-state disk 220 and solid-state disk 260 is grouped in, composition storage unit group.Provide in for 201310003789.1 and 201310003898.3 Chinese patent application at application number and will be mapped to from the logical address of main frame the mode of storage unit group.Each page in the storage unit group is operated together, the checking data that wherein can store user data and be produced by user data.When damaging for one or more pages in the storage unit group, can come based on other pages in the storage unit group data of Recover from damaging.For example, the storage unit group can comprise N+P page, and wherein N page is used for the storage user data, and P page is used for the storage checking data.Preferably, memory allocated unit group when making one or more in removing solid-state disk 200,220 and 260, can utilize remaining solid-state disk to recover the data of storing in solid-state disk that remove.In an example, page 211, page 231 have identical physical address respectively with page 261 in solid-state disk 200, solid-state disk 220 and solid-state disk 260, can easily determine like this to form each page of storage unit group, and the metadata that need not add.By this way, the page 1 of the piece 0 of the chip 221 of the page 1 of the piece 0 of the chip 201 of dish 200, dish 220 forms another storage unit group with the page 1 of the piece 0 of the chip 261 of dish 260.Comprise 3 pages although the storage unit group has been shown in the embodiment of Fig. 2, be appreciated that the storage unit group can have the page of other varying numbers.
In one embodiment, the storage unit group comprises each the page that comes an a plurality of solid-state disk (200,220 and 260).In another embodiment, the storage unit group comprises the one or more page from a plurality of solid-state disks.Also can comprise a plurality of pages from a solid-state disk in the storage unit group.
Continuation is with reference to Fig. 2, and in one embodiment, page 215, page 235 form the storage unit group with page 265.Page 215, page 235 can have identical or different physical address with page 265, thereby need to provide additional metadata to indicate page 215, page 235 to form the storage unit group with page 265.Can be in (Out-Of-Band) data outside page 215, page 235 and page 265 band storing metadata, can also be at storing metadata (correspondingly reducing the memory capacity of user data) in page 215, page 235 and page 265 user data area, can also be in other pages storing metadata.Because the page in flash memory may damage, utilize the metadata indication to form a plurality of pages of storage unit group, can effectively the page that damages be got rid of, and utilize the page with identical or different physical address to form the storage unit group, thereby improve the utilization factor of storage space.
Fig. 3 is the block diagram according to the computer system of the embodiment of the present invention.Computing machine 300 comprises mainboard 310.Be furnished with CPU (central processing unit) (CPU, Central Processing Unit) 312 and expansion card 314 on mainboard 310.Also can be furnished with the parts such as chipset, storer on mainboard 310.Expansion card 314 is used for a plurality of memory discs are coupled to computing machine 300.Expansion card 314 can pass through such as PCIE(Peripheral Component Interconnect Express, quick peripheral assembly interconnecting), PCI(Peripheral Component Interconnect, periphery component interconnection) etc. multiple interfaces be coupled to mainboard 310.Expansion card 314 can pass through multiple interfaces coupled storage dish, multiple interfaces includes but not limited to SATA(Serial Advanced Technology Attachment, Serial Advanced Technology Attachment), USB(Universal Serial Bus, USB (universal serial bus)), PCIE, SCSI(Small Computer System Interface, small computer system interface), IDE(Integrated Drive Electronics, the integrated drive electronics) etc.A plurality of memory discs comprise dish 320,322,324 and 326.Can the be coupled memory disc of varying number of expansion card 314.Can comprise flash translation layer (FTL) (Flash Translation Layer, FTL) parts in expansion card 314, be converted to memory disc request of access based on physical address in order to the memory disc request of access with the logic-based address.Memory disc can be solid-state disk, and as storage medium, solid-state disk also is applicable to the storage chip of other types to solid-state disk with flash chip, for example, and phase transition storage, Memister, ferroelectric memory etc.
In one embodiment, can not comprise expansion card 314 in mainboard 310, and by being arranged on the interfaces such as PCIE, IDE, SCSI and/or SATA on mainboard 310, will coiling 320,322,324 and 326 and be coupled to mainboard 310.And, provide flash translation layer (FTL) software in the operating system of computing machine 300 or application program, be converted to memory disc request of access based on physical address in order to the memory disc request of access with the logic-based address.The flash translation layer (FTL) parts can also be arranged in CPU, chipset or other integrated circuit.
Can be furnished with control circuit on expansion card 314, operate in order to each that implement to describe access of controlling coiling 320,322,324,326 in Fig. 4-Fig. 6.Control circuit can be FPGA(Field-programmable gate array, field programmable gate array), ASIC(Application Specific Integrated Circuit, the application specific integrated circuit) or the form of its combination.Control circuit also can comprise one or more processors or controller.The flash translation layer (FTL) parts can be realized with the hardware circuit form in FPGA, ASIC, also can adopt the software form that operates in processor or controller to realize.
Fig. 4 is the process flow diagram according to the method for a plurality of drivers of access of the embodiment of the present invention.In step 400, receive write request.Write request can be from the CPU312 of computing machine 300.Write request can be sent by the operating system or the application software that operate on computing machine 300, and indicates in the memory device that writes data into such as solid-state disk.Can carry or indicate logical address in write request, the logical address space that logical address indication memory device represents.
In step 410, obtain physical address.Obtain logical address based on write request, for example can be from write request the extraction logic address, also can come indirect extraction logic address based on the indication in write request (for example, to the indication of the storage space of store logical addresses, or with respect to the skew of last logical address).Then, by mapping table, logical address is converted to physical address.In a further embodiment, a plurality of pages in a plurality of solid-state disks are grouped in together, form the storage unit group.By mapping table or Sequential Mapping mode, logical address is converted to address for the storage unit group.For the write request that receives continuously, its logical address is converted to identical storage unit group address, until filled N data page in the storage unit group.And then obtain physical address based on the address of storage unit group.Resulting physical address has been indicated the storage unit in this storage unit group.And write request or logical address can Maintenance free storage unit group structures.
In step 420, based on physical address, the data write storage device that write request is indicated.In one embodiment, for each solid-state disk provides write queue, in the mode of first in first out based on physical address with the data write storage device.In another embodiment, provide shared write queue for a plurality of or all solid-state disks.In a further embodiment, the storage unit group comprises a plurality of pages, and write request is less than the capacity of storage unit group to the data of correspondence.Go back buffering write data, with thinking that corresponding storage unit group generates checking data.In one embodiment, also write the metadata of indication storage unit group information to memory device.
In step 430, judge whether to generate checking data.If not, return to step 400 to receive other write request.If, in step 440 calculation check data.Calculate the checking data of P page based on the user data of N page.For example, can adopt the parity calculation checking data, also can adopt other habitual checking data generating modes of all spectra.In one embodiment, before the calculation check data, the interim user data of storing corresponding to a storage unit group, and after the calculation check data, can discharge the memory block of interim storage user data.Also based on the storage unit group address, be identified for storing the physical address of the checking data of P page.
In step 450, based on physical address, with the checking data write storage device.Write queue can be provided, with first-in first-out with the checking data write storage device.In one embodiment, also write the metadata of indication storage unit group information to memory device.
Fig. 5 is the process flow diagram of method of a plurality of drivers of access of the further embodiment according to the present invention.Process flow diagram shown in Fig. 5 with respect to the process flow diagram in Fig. 4, has further been showed the various ways that obtains physical address based on the corresponding logical address of write request.
In step 500, receive write request.
By step 511 and step 512, showed a kind of mode of obtaining physical address.In step 511, distribute one of a plurality of solid-state disks.Can distribute in several ways solid-state disk.For example, can distribute solid-state disk by round robin; Can be by the state of inquiry solid-state disk, and the mode of selecting to be in the solid-state disk of idle condition is distributed solid-state disk; Also can be by relatively corresponding to the length that writes formation of solid-state disk, the mode of selecting to write the shorter solid-state disk of formation is distributed solid-state disk.In step 512, for selected solid-state disk, logical address is mapped to the physical address of this solid-state disk of indication.Physical address can be indicated the physical location of the page of this solid-state disk.A plurality of pages of composition storage unit groups from one or more solid-state disks of distributing for continuous a plurality of write requests in one embodiment.The N of storage unit group page can be from each of N solid-state disk, N page of same position or the diverse location that can be positioned at each solid-state disk.The N of storage unit group page also can or be less than N solid-state disk from one.
By step 513 and step 514, showed that another obtains the mode of physical address.In step 513, distribute one of a plurality of solid-state disks.Can distribute in several ways solid-state disk.For example, can distribute solid-state disk by round robin; Can be by the state of inquiry solid-state disk, and the mode of selecting to be in the solid-state disk of idle condition is distributed solid-state disk; Also can be by relatively corresponding to the length that writes formation of solid-state disk, the mode of selecting to write the shorter solid-state disk of formation is distributed solid-state disk.In step 514, for selected solid-state disk, the write pointer of this solid-state disk as the physical address of wanting data writing, and is increased progressively this write pointer.In this way, each solid-state disk has the write pointer for himself, write pointer has been indicated the position of wanting data writing, make at the continuous write operation on a solid-state disk and can carry out on the continuous physical address at this solid-state disk, and then can be reduced in the caused enlarge-effect of writing in the erasure balance process, thereby improve the serviceable life of memory device.Physical address can be indicated the physical location of the page of this solid-state disk.A plurality of pages of composition storage unit groups from one or more solid-state disks of distributing for continuous a plurality of write requests in one embodiment.The N of storage unit group page can be from each of N solid-state disk, N page of same position or the diverse location that can be positioned at each solid-state disk.The N of storage unit group page also can or be less than N solid-state disk from one.
By step 515 and step 516, showed that another obtains the mode of physical address.In step 515, memory allocated unit group.The storage unit group comprises a plurality of pages.Consist of storage unit a plurality of pages from a plurality of solid-state disks.For example, the storage unit group can comprise N+P page, and N page is used for the storage user data, and P page is used for the storage checking data.N+P page is from N+P solid-state disk, and each solid-state disk provides a page.In another embodiment, N+P page is from being less than N+P solid-state disk.In one embodiment, during comprising the memory device initialization of a plurality of solid-state disks, determine the quantity of storage unit group and the mapping mode that the storage unit group arrives Physical Page.A plurality of pages of storage unit group can be positioned at same position or the diverse location of a plurality of solid-state disks.Preferably, memory allocated unit group makes at the continuous write operation on a solid-state disk and can carry out on the continuous physical address at this solid-state disk.For example, if a page of the storage unit group of current distribution has physical address P (i), when distributing next storage unit group, select the corresponding storage unit group of physical address P (i+1).In another example, N+P of storage unit group K page be from each of N+P solid-state disk, and this N+P page have identical physical address P (K), and each page of storage unit group K+1 has identical physical address P(K+1); After memory allocated unit K, memory allocated unit group K+1.In step 516, for the storage unit group of distributing, the write pointer of this storage unit group as the physical address of wanting data writing, and is increased progressively this write pointer.In this way, the current memory cell group has the write pointer for himself, and write pointer has been indicated the position of wanting data writing.
By step 517 and step 518, showed that another obtains the mode of physical address.In step 517, memory allocated unit group.In step 518, for the storage unit group of distributing, the Physical Page that not yet is assigned with in the select storage unit group, with the address of this Physical Page as the physical address that distributes.Can select in several ways not yet to be assigned with Physical Page in the physical location group.For example, can select Physical Page based on the idle condition of the corresponding a plurality of disks of a plurality of Physical Page that not yet are assigned with in the physical location group; Can also select Physical Page based on the write queue length of the corresponding a plurality of disks of a plurality of Physical Page that not yet are assigned with in the storage unit group.
In step 520, based on physical address, the data write storage device that write request is indicated.
In step 530, judge whether to generate checking data.If not, return to step 500 to receive other write request.If, in step 540 calculation check data.Also determine physical address for checking data.For example, for the user data in the storage unit group, distribute the physical address of P the page that belongs to this storage unit group for corresponding checking data, this P page is used for the storage checking data.Again for example, for user data and the checking data that generates based on user data, allocated physical address, and make this user data and checking data be stored in same storage unit group.
In step 550, based on physical address, with the checking data write storage device.
Fig. 6 is the further process flow diagram of the method for a plurality of drivers of access of embodiment still according to the present invention.Process flow diagram shown in Fig. 6 with respect to the process flow diagram in Fig. 4, has further been showed the various ways that determines whether to generate checking data.Generally speaking, after the whole user data that receive a storage unit group, generate checking data based on these user data.In some other situations such as shutdown or power down, also need to generate checking data.
In step 600, receive write request.In step 610, obtain physical address.In step 620, based on physical address, the data write storage device that write request is indicated.
Step 632 has been showed a kind of mode that determines whether to generate checking data of obtaining.In step 632, determine whether to receive the whole user data for a storage unit group.If not, return to step 600 to receive other write request.If, in step 640 calculation check data.Whole user data of a storage unit group can be N the pages that for example will be stored in this storage unit group.In one embodiment, when the corresponding data of a plurality of write requests that receive in order reach N page big or small, definite whole user data that received for a storage unit group.In another embodiment, when the N in the storage unit group page has been assigned with, determine to have received the whole user data for a storage unit group.
Step 634 has been showed the another kind of mode that determines whether to generate checking data of obtaining.In step 634, judge whether to have received the page data of m(<N), not yet receive the whole user data for a storage unit group; But the event of calculation check data has appearred requiring to force.Forcing the calculation check data may be due to fortuitous events such as computing machine power down, shutdown, can also be receive the buffer zone request of washing away that operating system or application program send or m page data buffer memory the long time.As not calculating checking data, the m page data of interim storage will lose, the storage unit group that also can't obtain completing on memory device.If being judged as NO of step 634 returned to step 600 to receive other write request; If yes, in step 640 calculation check data.And be the calculation check data, also use predetermined data value (for example, 0,1 or other predetermined values) to fill the N-m page data, make the m page data that receives and the N-m page data of filling consist of the N page data, and can calculate P page checking data in step 640.Can also carry out the garbage reclamation operation on memory device or solid-state disk, use the write request that produces in the garbage reclamation operation to fill the N-m page data.In another embodiment, the data of reception may be by the page boundary alignment, and correspondingly, the data of filling can not alignd by page boundary yet.
Step 636 has been showed the another kind of mode that determines whether to generate checking data of obtaining.In step 636, judge whether to have received the page data of m(<N), not yet receive the whole user data for a storage unit group; But at the write request indicating data that will write only have the m page.At the write request indicating data that will write only have the m page, mean and complete from the write operation of operating system or application program, and hinting within a period of time in future there is no follow-up write request; Can mean that also the prediction of operating system or application program is in the unlikely write request that occurs of a period of time in future.In the case, continue interim storage m page data and can increase power consumption, and reduce the performance of memory device because storage space is occupied.If being judged as NO of step 636 returned to step 600 to receive other write request; If yes, in step 640 calculation check data.And be the calculation check data, also use predetermined data value (for example, 0,1 or other predetermined values) to fill the N-m page data, make the m page data that receives and the N-m page data of filling consist of the N page data, and can calculate P page checking data in step 640.Can also carry out the garbage reclamation operation on memory device or solid-state disk, use the write request that produces in the garbage reclamation operation to fill the N-m page data.In another embodiment, the data of reception may be by the page boundary alignment, and correspondingly, the data of filling can not alignd by page boundary yet.
Step 638 has been showed the another kind of mode that determines whether to generate checking data of obtaining.In step 638, judge whether to have received the page data of m(<N), not yet receive the whole user data for a storage unit group; But to carry out the garbage reclamation operation on memory device.If not, return to step 600 to receive other write request; If use the write request that produces in the garbage reclamation operation to fill the N-m page data, and calculate P page checking data in step 640.In another embodiment, the data of reception may be by the page boundary alignment, and correspondingly, the data of filling can not alignd by page boundary yet.
In step 650, based on physical address, with the checking data write storage device.
By above-described embodiments of the invention, just data are written to a plurality of solid-state disks of memory device simultaneously, have improved the degree of parallelism of write operation.And, provide the protection extra to data by the storage unit group, improved the reliability of memory device.
Fig. 7 is the block diagram according to the memory device of the embodiment of the present invention.The above discloses the block diagram according to the computer system of the embodiment of the present invention in Fig. 3.And the embodiment of Fig. 7 is for providing the memory device of stores service by network.Memory device 700 comprises backboard 710.Be furnished with controller 714 on backboard 710.Also can be furnished with the parts such as chipset, storer on backboard 710.Controller 714 is used for a plurality of memory discs are coupled to memory device 700.Controller 714 can pass through multiple interfaces coupled storage dish, and multiple interfaces includes but not limited to SATA7, USB7, PCI, PCIE, SCSI7, IDE7 etc.Controller 714 also can be indirectly coupled to memory disc by chipset or expansion card.A plurality of memory discs comprise dish 720,722,724 and 726.Can the be coupled memory disc of varying number of controller 714.Can comprise flash translation layer (FTL) (Flash Translation Layer, FTL) parts in controller 714, be converted to memory disc request of access based on physical address in order to the memory disc request of access with the logic-based address.Memory disc can be solid-state disk, and as storage medium, solid-state disk also is applicable to the storage chip of other types to solid-state disk with flash chip, for example, and phase transition storage, Memister, ferroelectric memory etc.
In one embodiment, provide flash translation layer (FTL) software in the operating system of memory device 700 or other programs, be converted to memory disc request of access based on physical address in order to the memory disc request of access with the logic-based address.The flash translation layer (FTL) parts can also be arranged in CPU, chipset or other integrated circuit.
Controller 714 can operate the access of controlling coiling 720,722,724,726 in order to each that describe above implementing in Fig. 4-Fig. 6.Controller 714 can be the form of FPGA, ASIC or its combination.Controller 714 also can comprise one or more processors or controller.The flash translation layer (FTL) parts can be realized with the hardware circuit form in FPGA, ASIC, also can adopt the software form that operates in processor or controller to realize.
Also be furnished with network adapter 730,732 on backboard 710.Provide two network adapter, to improve the reliability of memory device.The network adapter of one or other quantity also can be provided.By network adapter 730,732, memory device 700 is coupled to network 734.Network 734 can be Ethernet, PCIE net or fiber channel network.Client 740,742 also is coupled to network 734, and by network 734 accessing storage devices 700.In other embodiments, client 740,742 can not be directly coupled to network adapter 730 and/or 732 via network 734.
Represented the description of this invention for the purpose that illustrates and describe, and be not intended to disclosed form limit or restriction the present invention.To one of ordinary skill in the art, many adjustment and variation are apparent.

Claims (12)

1. method that is used for a plurality of drivers of accessing storage device, described method comprises:
Reception writes request for the first logical address of described memory device with the first data;
For described the first logical address generates the first physical address;
Generation writes order, and its indication writes described the first physical address indicated memory location with described the first data; Determine whether to generate checking data;
If generate the first checking data based on described the first data, and described the first checking data write the second physical address indicated memory location.
2. method according to claim 1 also comprises:
Storing metadata on one or more in described a plurality of drivers, described the first physical address of described metadata indication, described the second physical address have incidence relation.
3. method according to claim 1 is wherein that described the first logical address generates the first physical address by selecting the first driver in described a plurality of driver, the memory location in described the first described the first driver of physical address indication.
4. method according to claim 3, wherein provide write pointer for each driver, the physical address of write pointer indication data writing based on described first physical address of write pointer generation of selected the first driver, and increases progressively the write pointer of described the first driver.
5. method according to claim 1, wherein in response to receiving, the first data are write request for the first logical address of described memory device, memory allocated unit group, described storage unit group comprises a plurality of storage unit, and each in described a plurality of storage unit is positioned at one of described a plurality of drivers.
6. method according to claim 5, wherein provide write pointer for the storage unit group, a storage unit in the described storage unit group of write pointer indication, generate described the first physical address based on the write pointer of the storage unit group of distributing, and make another storage unit in the described storage unit group of write pointer indication of the storage unit group of distributing.
7. method according to claim 5, wherein in response to memory allocated unit group, state based on a plurality of drivers at each storage unit place of described storage unit group, select a storage unit to come for described the first logical address generates the first physical address from described storage unit group, described the first selected storage unit of physical address indication.
8. method according to claim 1, if wherein received for N data that generate checking data, determine to generate checking data, and N is natural number.
9. according to claim 1 or 8 described methods, if wherein not yet receive and fill for N data that generate checking data N the data that tentation data is formed for generating checking data, and definite generation checking data.
10. according to claim 1 or 8 described methods, if wherein not yet receive for N data that generate checking data, operate to be formed for generating N data of checking data by the execution garbage reclamation, and determine to generate checking data.
11. method according to claim 8 wherein generates checking data at the described request indicating.
12. a device that is used for a plurality of drivers of accessing storage device, described device comprises:
Be used for to receive the first data are write module for the request of the first logical address of described memory device;
Be used to described the first logical address to generate the module of the first physical address;
Be used for to generate the module that writes order, said write order indication writes described the first physical address indicated memory location with described the first data;
Be used for determining whether to generate the module of checking data;
Be used for generating the first checking data in the situation that determine to generate checking data based on described the first data, and the indicated memory location of module that described the first checking data is write the second physical address.
CN201310076787.5A 2013-03-11 2013-03-11 Method and device for simultaneously accessing multiple solid-state disks Active CN103150261B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310076787.5A CN103150261B (en) 2013-03-11 2013-03-11 Method and device for simultaneously accessing multiple solid-state disks
PCT/CN2014/073155 WO2014139390A1 (en) 2013-03-11 2014-03-10 Storage device and accessing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310076787.5A CN103150261B (en) 2013-03-11 2013-03-11 Method and device for simultaneously accessing multiple solid-state disks

Publications (2)

Publication Number Publication Date
CN103150261A true CN103150261A (en) 2013-06-12
CN103150261B CN103150261B (en) 2017-02-08

Family

ID=48548354

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310076787.5A Active CN103150261B (en) 2013-03-11 2013-03-11 Method and device for simultaneously accessing multiple solid-state disks

Country Status (1)

Country Link
CN (1) CN103150261B (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014139390A1 (en) * 2013-03-11 2014-09-18 北京忆恒创源科技有限公司 Storage device and accessing method thereof
CN106257431A (en) * 2015-06-19 2016-12-28 罗伯特·博世有限公司 The memory element of the content storing position that automatically doubles and the data network with it
CN106469099A (en) * 2015-08-14 2017-03-01 英飞凌科技股份有限公司 Error correcting in the case of application WOM code
CN107562648A (en) * 2016-07-01 2018-01-09 北京忆恒创源科技有限公司 Without lock FTL access methods and device
CN107885456A (en) * 2016-09-29 2018-04-06 北京忆恒创源科技有限公司 Reduce the conflict that I/O command accesses NVM
CN109086219A (en) * 2017-06-14 2018-12-25 北京忆恒创源科技有限公司 It removes distribution command handling method and its stores equipment
CN110908594A (en) * 2018-09-18 2020-03-24 爱思开海力士有限公司 Operation method of memory system and memory system
CN111831589A (en) * 2016-07-01 2020-10-27 北京忆恒创源科技有限公司 Method and device for improving IO command processing parallelism

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040093463A1 (en) * 2002-11-06 2004-05-13 Rung-Ji Shang RAID-5 disk having cache memory implemented using non-volatile RAM
WO2012064464A1 (en) * 2010-11-08 2012-05-18 Greenliant Llc Memory controller and system for storing blocks of data in non-volatile memory devices in a redundant manner
CN102830942A (en) * 2012-06-28 2012-12-19 记忆科技(深圳)有限公司 Method for mapping disk array of solid hard disk and solid hard disk

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040093463A1 (en) * 2002-11-06 2004-05-13 Rung-Ji Shang RAID-5 disk having cache memory implemented using non-volatile RAM
WO2012064464A1 (en) * 2010-11-08 2012-05-18 Greenliant Llc Memory controller and system for storing blocks of data in non-volatile memory devices in a redundant manner
CN102830942A (en) * 2012-06-28 2012-12-19 记忆科技(深圳)有限公司 Method for mapping disk array of solid hard disk and solid hard disk

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014139390A1 (en) * 2013-03-11 2014-09-18 北京忆恒创源科技有限公司 Storage device and accessing method thereof
CN106257431A (en) * 2015-06-19 2016-12-28 罗伯特·博世有限公司 The memory element of the content storing position that automatically doubles and the data network with it
CN106257431B (en) * 2015-06-19 2022-09-02 罗伯特·博世有限公司 Storage unit for automatically multiplying the content of a storage bit and data network having such a storage unit
CN106469099B (en) * 2015-08-14 2020-06-09 英飞凌科技股份有限公司 Error correction in case of application of WOM code
CN106469099A (en) * 2015-08-14 2017-03-01 英飞凌科技股份有限公司 Error correcting in the case of application WOM code
US10133626B2 (en) 2015-08-14 2018-11-20 Infineon Technologies Ag Error correction using WOM codes
CN111831589A (en) * 2016-07-01 2020-10-27 北京忆恒创源科技有限公司 Method and device for improving IO command processing parallelism
CN107562648A (en) * 2016-07-01 2018-01-09 北京忆恒创源科技有限公司 Without lock FTL access methods and device
CN107885456A (en) * 2016-09-29 2018-04-06 北京忆恒创源科技有限公司 Reduce the conflict that I/O command accesses NVM
CN107885456B (en) * 2016-09-29 2022-09-16 北京忆恒创源科技股份有限公司 Reducing conflicts for IO command access to NVM
CN109086219A (en) * 2017-06-14 2018-12-25 北京忆恒创源科技有限公司 It removes distribution command handling method and its stores equipment
CN109086219B (en) * 2017-06-14 2022-08-05 北京忆恒创源科技股份有限公司 De-allocation command processing method and storage device thereof
CN110908594A (en) * 2018-09-18 2020-03-24 爱思开海力士有限公司 Operation method of memory system and memory system
CN110908594B (en) * 2018-09-18 2023-08-25 爱思开海力士有限公司 Memory system and operation method thereof

Also Published As

Publication number Publication date
CN103150261B (en) 2017-02-08

Similar Documents

Publication Publication Date Title
CN103150261A (en) Method and device for simultaneously accessing multiple solid-state disks
CN103218270A (en) Computer with plurality of solid state disks
CN103176858A (en) Storage device with multiple solid-state discs
US8250283B1 (en) Write-distribute command for RAID mirroring
US20130019057A1 (en) Flash disk array and controller
US8230159B2 (en) System, method, and computer program product for sending logical block address de-allocation status information
CN109358809B (en) RAID data storage system and method
CN108228473B (en) Method and system for load balancing by dynamically transferring memory range allocations
CN109101185B (en) Solid-state storage device and write command and read command processing method thereof
US20130091307A1 (en) Method and apparatus for effectively increasing a command queue length for accessing storage
CN106873903B (en) Data storage method and device
CN107797938B (en) Method for accelerating de-allocation command processing and storage device
US11126367B2 (en) Storage system and method for determining ecosystem bottlenecks and suggesting improvements
CN110489056A (en) Controller and storage system including the controller
CN203191967U (en) Computer system
US11698734B2 (en) Collision reduction through just-in-time resource allocation
CN108877862B (en) Data organization of page stripes and method and device for writing data into page stripes
CN203191968U (en) Storage equipment with a plurality of solid-state discs
US9652172B2 (en) Data storage device performing merging process on groups of memory blocks and operation method thereof
CN104899158A (en) Memory access optimization method and memory access optimization device
US20170308326A1 (en) Storage system and method for improved command flow
CN103914401B (en) Storage device with multiple processors
Zhang et al. Optimizing performance for open-channel ssds in cloud storage system
CN108984108A (en) For dispatching the method and solid storage device of I/O command
CN114168067A (en) NVMe simple copy command support using dummy virtual functions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Patentee after: Beijing yihengchuangyuan Technology Co.,Ltd.

Address before: 100085 Beijing Haidian District Shangdi Information Road 2 Pioneer Park D 609

Patentee before: MEMBLAZE TECHNOLOGY (BEIJING) Co.,Ltd.