CN103150261B - 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
CN103150261B
CN103150261B CN201310076787.5A CN201310076787A CN103150261B CN 103150261 B CN103150261 B CN 103150261B CN 201310076787 A CN201310076787 A CN 201310076787A CN 103150261 B CN103150261 B CN 103150261B
Authority
CN
China
Prior art keywords
data
verification data
write
memory cell
cell group
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
CN201310076787.5A
Other languages
Chinese (zh)
Other versions
CN103150261A (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

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

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

For accessing the method and apparatus of multiple solid-state disks simultaneously
Technical field
The present invention relates to solid storage device(Solid Storage Device,SSD), more particularly it relates to For accessing the method and apparatus of multiple solid-state disks simultaneously.
Background technology
Similar with mechanical type hard disk, solid storage device be also for computer system Large Copacity, non-volatile deposit Storage equipment.Solid storage device is typically with flash memory(Flash)As storage medium.High performance solid storage device is used for height Project Computer.
Memory target(Target)It is the shared chip enable in nand flash memory encapsulation(CE,Chip Enable)Signal One or more logical blocks(Logic Unit).Each logical block has LUN(LUN,LogicUnit Number).May include one or more tube cores in nand flash memory encapsulation(Die).Typically, logical block corresponds to single pipe Core.Logical block may include multiple planes(Plane).Multiple planes in logical block can be with parallel access, and nand flash memory Multiple logical blocks in chip can execute order and report state independently of one another.Can be from http:// Www.micron.com/~/media/Documents/Products/Other%20Documents/ONFI3_0Gold.a shx " the Open NAND Flash Interface Specification obtaining(Revision3.0)" in, there is provided with regard to target (target), logical block, LUN, plane(Plane)Implication, its be prior art a part.
Solid storage device can have expansion card shape, may be mounted to the PCIE on mainboard or similar interface.Solid-state Storage device also can have 3.5,2.5 or 1.8 inches of driver shapes, may be mounted in frame or disk battle array equipment, its general quilt Referred to as solid-state disk(Solid State Disk).
The Chinese patent application of Publication No. CN102656567A discloses the data management in solid-state memory.Referring to Fig. 1, one group of page of solid-state memory is referred to as " step pitch(stride)", each step pitch includes a group from each passage Page, wherein the one of each passage group page is referred to as " bar "(strip).For identifying LBA(Logic Block Address, patrols Collect block address)Write request, be implemented in step pitch from LBA to PBA(Physical Block Address, physical block ground Location)Mapping, and fill each in step pitch(Id in Fig. 1 is respectively 31,52,44,67 bar).To multiple in step pitch Filling can be continuous or parallel.So, by RAID(Redundant Array of Independent Disks, solely Vertical redundant arrays of inexpensive disks)Pattern is incorporated in solid storage device, improves the performance and reliability of solid storage device.
However, in storage device may multiple solid-state disks or multiple storage card, each solid-state disk or storage card are likely to be of Different capacity and performance, as time goes by, each solid-state disk or storage card also can show different characteristics.In write It is considered to the particular characteristic of each solid-state disk or storage card will be helpful to improve the performance of storage device during data.And, write please In asking, entrained data volume may be different from the data capacity of " step pitch ".Need to provide corresponding means to mate from client The capacity of the memory element of the access request at end and storage device.
Content of the invention
The present invention solves in the raid storage devices that solid-state disk is formed and writes scale-up problem, extends the use of storage device Life-span.
According to the first aspect of the invention, there is provided a kind of method of the multiple drivers for accessing storage device, institute The method of stating includes:Receive the request writing first data into the first logical address for described storage device;
Generate the first physical address for described first logical address;Generate writing commands, it indicates described first data Write described first physical address;Determine whether to generate verification data;If so, it is based on described first data genaration the first check number According to, and described first verification data is write the second physical address.
Method according to the first aspect of the invention, also includes:One or more of the plurality of driver is deposited Storage metadata, described metadata indicates that described first physical address, described second physical address have incidence relation.
Method according to the first aspect of the invention, wherein by select the plurality of driver in the first driver Lai Generate the first physical address for described first logical address, described first physical address indicates the storage in described first driver Position.
Method according to the first aspect of the invention, wherein provides write pointer, write pointer instruction write for each driver The physical address of data, the write pointer based on selected first driver generates described first physical address, and makes described the The write pointer of one driver is incremented by.
Method according to the first aspect of the invention, wherein sets for described storage in response to receiving to write first data into The request of the first standby logical address, distributes memory cell group, and described storage group includes multiple memory element, the plurality of storage Each in unit is located at one of the plurality of driver.
Method according to the first aspect of the invention, wherein said memory element is one or more pages.
Method according to the first aspect of the invention, wherein provides write pointer for memory cell group, and write pointer instruction is described One of memory cell group memory element, the write pointer based on the memory cell group distributed generates described first physically Location, and make the write pointer of distributed memory cell group indicate another memory element in described memory cell group.
Method according to the first aspect of the invention, wherein in response to distributing memory cell group, based on described memory element The state of multiple drivers that each memory element of group is located, select from described memory cell group memory element come for Described first logical address generates the first physical address, and described first physical address indicates selected memory element.
Method according to the first aspect of the invention, wherein provides for each driver in the plurality of driver and writes team Row, for memory writer command before writing commands are sent to driver.
Method according to the first aspect of the invention, if wherein having received the N number of data for generating verification data, Then determine and generate verification data, N is natural number.
Method according to the first aspect of the invention, if wherein not yet receiving the N number of data for generating verification data, Fill tentation data to form the N number of data for generating verification data, and determine generation verification data.
Method according to the first aspect of the invention, if wherein not yet receiving the N number of data for generating verification data, N number of data for generating verification data is formed by execution garbage collection operation, and determines generation verification data.
Method according to the first aspect of the invention, wherein in described request, instruction generates verification data.
Method according to the first aspect of the invention, indicates the value of described N in wherein said request.
Method according to the first aspect of the invention, if wherein not yet receiving the N number of data for generating verification data, And instruction generates verification data in described request, filling data is forming the N number of data for generating verification data, and generates school Test data.
Method according to the first aspect of the invention, if wherein not yet receiving the N number of data for generating verification data, And force the event calculating verification data to occur, fill data to form the N number of data for generating verification data, and generate school Test data.
Method according to the first aspect of the invention, if wherein not yet receiving the N number of data for generating verification data, And instruction generates verification data in described request, execution garbage collection operation forming the N number of data for generating verification data, And generate verification data.
Method according to the first aspect of the invention, if wherein not yet receiving the N number of data for generating verification data, And force the event calculating verification data to occur, execute garbage collection operation to form the N number of data for generating verification data, And generate verification data.
According to the second aspect of the invention, there is provided a kind of device of the multiple drivers for accessing storage device, institute State device to include:For receiving the module of the request writing first data into the first logical address for described storage device; For generating the module of the first physical address for described first logical address;For generating the module of writing commands, said write Described first data is write described first physical address by order instruction;It is used to determine whether to generate the module of verification data;With It is based on described first data genaration the first verification data in the case of generating verification data in determination, and described first is verified Data writes the module of the second physical address.
According to the third aspect of the invention we, there is provided a kind of storage device, including network adapter, controller and coupling Multiple drivers to described controller;Described storage device is coupled to network by described network adapter, and receives from visitor The access request at family end, described access request instruction writes first data into the first logical address for described storage device; Described controller is that described first logical address generates the first physical address, and generates writing commands and be sent to the plurality of driving One of device, described first data is write described first physical address by its instruction;Described controller also determines whether to generate verification Data, is if so, based on described first data genaration the first verification data, and generates the second writing commands and be sent to the plurality of drive One of dynamic device, described first verification data is write the second physical address by its instruction.
Storage device according to the third aspect of the invention we, also includes:Metadata is stored in described many by described controller One or more of individual driver, described metadata indicates that described first physical address, described second physical address have pass Connection relation.
Storage device according to the third aspect of the invention we, wherein said controller passes through to select in the plurality of driver The first driver come for described first logical address generate the first physical address, described first physical address instruction described first Storage location in driver.
Storage device according to the third aspect of the invention we, wherein safeguards for each driver in the controller and writes finger Pin, the physical address of write pointer instruction write data;The write pointer also based on selected first driver for the described controller is given birth to Become described first physical address, and so that the write pointer of described first driver is incremented by.
Storage device according to the third aspect of the invention we, wherein said controller writes first data in response to receiving For the request of the first logical address of described storage device, distribute memory cell group, it is single that described storage group includes multiple storages Unit, each in the plurality of memory element is located at one of the plurality of driver.
Storage device according to the third aspect of the invention we, wherein said controller is memory element group maintenance write pointer, Write pointer indicates one of described memory cell group memory element, and described controller is write based on the memory cell group distributed First physical address described in Pointer generator, and so that the write pointer of distributed memory cell group is indicated in described memory cell group Another memory element.
Storage device according to the third aspect of the invention we, wherein in response to distributing memory cell group, described controller is looked into Ask the state of multiple drivers at each memory element place of described memory cell group, and based on described state from described storage A memory element is selected to generate the first physical address, described first physical address for described first logical address in unit group Indicate selected memory element.
Storage device according to the third aspect of the invention we, wherein said controller is each in the plurality of driver Driver provides write queue, and described write queue is used for memory writer command before writing commands are sent to driver.
Storage device according to the third aspect of the invention we, if wherein described storage device has received for generating school Test N number of data of data, then described controller determines generation verification data, and N is natural number.
Storage device according to the third aspect of the invention we, if wherein described storage device not yet receives for generating school Test N number of data of data, then described controller fills tentation data to form the N number of data for generating verification data, and really Surely generate verification data.
Storage device according to the third aspect of the invention we, if wherein described storage device not yet receives for generating school Test N number of data of data, then the one or more garbage collection operation for the plurality of driver initiated by described controller To form the N number of data for generating verification data, and to determine generation verification data.
Storage device according to the third aspect of the invention we, indicates the value of described N in wherein said request.
Storage device according to the third aspect of the invention we, wherein in described request, instruction generates verification data.
Storage device according to the third aspect of the invention we, indicates the value of described N in wherein said request.
Storage device according to the third aspect of the invention we, if wherein not yet received for generating the N number of of verification data Instruction in data, and described request generates verification data, fills data to form the N number of data for generating verification data, and Generate verification data.
Storage device according to the third aspect of the invention we, if wherein not yet received for generating the N number of of verification data Data, and force the event calculating verification data to occur, fill data to form the N number of data for generating verification data, and Generate verification data.
Storage device according to the third aspect of the invention we, if wherein not yet received for generating the N number of of verification data Instruction in data, and described request generates verification data, executes garbage collection operation to be formed for generating the N number of of verification data Data, and generate verification data.
Storage device according to the third aspect of the invention we, if wherein not yet received for generating the N number of of verification data Data, and force the event calculating verification data to occur, execute garbage collection operation to be formed for generating the N number of of verification data Data, and generate verification data.
According to the fourth aspect of the invention, there is provided a kind of computer system, including mainboard, the extension being arranged on mainboard Card, CPU and the multiple drivers being coupled to described expansion card;Described CPU is writing first data into the first logical address Request is sent to described expansion card;Described expansion card is that described first logical address generates the first physical address, and generates write Order is sent to one of the plurality of driver, and said write order instruction is by described first data write described first physically Location;Described expansion card also determines whether to generate verification data, is if so, based on described first data genaration the first verification data, and Generate the second writing commands and be sent to one of the plurality of driver, described second writing commands indicate described first check number According to writing the second physical address.
Computer system according to the fourth aspect of the invention, also includes:Metadata is stored in described by described expansion card One or more of multiple drivers, described metadata indicates that described first physical address, described second physical address have Incidence relation.
Computer system according to the fourth aspect of the invention, wherein said expansion card passes through to select the plurality of driver In the first driver to generate the first physical address, described first physical address instruction described for described first logical address Storage location in one driver.
Computer system according to the fourth aspect of the invention, safeguards for each driver wherein in described expansion card and writes Pointer, the physical address of write pointer instruction write data;The write pointer also based on selected first driver for the described expansion card Generate described first physical address, and so that the write pointer of described first driver is incremented by.
Computer system according to the fourth aspect of the invention, the first data is write by wherein said expansion card in response to receiving Enter the request of the first logical address for described storage device, distribute memory cell group, described storage group includes multiple storages Unit, each in the plurality of memory element is located at one of the plurality of driver.
Computer system according to the fourth aspect of the invention, wherein said expansion card writes finger for memory element group maintenance Pin, write pointer indicates one of described memory cell group memory element, and described expansion card is based on the memory cell group distributed Write pointer generate described first physical address, and make distributed memory cell group write pointer indicate described memory cell group In another memory element.
Computer system according to the fourth aspect of the invention, wherein in response to distributing memory cell group, described expansion card Inquire about the state of multiple drivers at each memory element place of described memory cell group, and deposited from described based on described state A memory element is selected to generate the first physical address for described first logical address in storage unit group, described first physically Location indicates selected memory element.
Computer system according to the fourth aspect of the invention, wherein said expansion card is every in the plurality of driver Individual driver provides write queue, and described write queue is used for memory writer command before writing commands are sent to driver.
Computer system according to the fourth aspect of the invention, if wherein described expansion card has received for generating school Test N number of data of data it is determined that generating verification data, N is natural number.
Computer system according to the fourth aspect of the invention, if wherein described expansion card not yet receives for generating school Test N number of data of data, then described expansion card fills tentation data to form the N number of data for generating verification data, and really Surely generate verification data.
Computer system according to the fourth aspect of the invention, if wherein described expansion card not yet receives for generating school Test N number of data of data, then described expansion card initiates the one or more garbage collection operation for the plurality of driver To form the N number of data for generating verification data, and to determine generation verification data.
Computer system according to the fourth aspect of the invention, indicates the value of described N in wherein said request.
Computer system according to the fourth aspect of the invention, indicates the value of described N in wherein said request.
Computer system according to the fourth aspect of the invention, wherein in described request, instruction generates verification data.
Computer system according to the fourth aspect of the invention, indicates the value of described N in wherein said request.
Computer system according to the fourth aspect of the invention, if wherein not yet receive the N for generating verification data Instruction in individual data, and described request generates verification data, fills data to form the N number of data for generating verification data, And generate verification data.
Computer system according to the fourth aspect of the invention, if wherein not yet receive the N for generating verification data Individual data, and force the event calculating verification data to occur, fill data to form the N number of data for generating verification data, And generate verification data.
Computer system according to the fourth aspect of the invention, if wherein not yet receive the N for generating verification data Instruction in individual data, and described request generates verification data, executes garbage collection operation to form the N for generating verification data Individual data, and generate verification data.
Computer system according to the fourth aspect of the invention, if wherein not yet receive the N for generating verification data Individual data, and force the event calculating verification data to occur, execute garbage collection operation to form the N for generating verification data Individual data, and generate verification data.
Brief description
When reading together with accompanying drawing, by reference to the detailed description to illustrative embodiment below, will be best understood by The present invention and preferred use pattern and its further objects and advantages, wherein accompanying drawing includes:
Fig. 1 illustrates the data tissue of solid state hard disc of the prior art;
Fig. 2 is the data tissue of storage device according to an embodiment of the invention;
Fig. 3 is the block diagram of computer system according to embodiments of the present invention;
Fig. 4 is the flow chart of the method for the multiple drivers of access according to embodiments of the present invention;
Fig. 5 is the flow chart of the method for the multiple drivers of access according to further embodiment of the present invention;
Fig. 6 be according to the present invention still further embodiment access multiple drivers method flow chart;And
Fig. 7 is the block diagram of storage device according to embodiments of the present invention.
Specific embodiment
Fig. 2 is the data tissue of storage device according to an embodiment of the invention.Storage device includes solid-state disk 200, consolidates 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 of drivers.Gu State disk 200 may include flash chip 201 and flash chip 202.Solid-state disk 220 includes flash chip 221, and solid-state disk 260 wraps Include flash chip 261.Solid-state disk 200 may also comprise the flash chip of varying number.And solid-state disk 200, solid-state disk 220 with solid State disk 260 can include the flash chip of varying number and/or different capabilities respectively.Flash chip in solid-state disk can be organized as many Individual passage, to be accepted or rejected between the interface pin quantity being used and the concurrent access of multiple flash chip.For example, in Shen Please provide number for 201210448894.1, in the Chinese patent application of 201210449387.X and multiple flash chip is organized as The mode of passage.
As an example, flash chip 201 includes multiple pieces, for example block 0, block 1, block 2 and block 3.Can also in flash chip Block including other quantity.Include multiple pages in each block.For nand flash memory, in units of page, read and write operation, and Implement erasing operation in units of block, this is to be determined by the physical arrangement of nand flash memory.As an example, flash chip 201 is gone back Including plane 0 and plane 1.Plane 0 includes block 0 and block 2, and plane 1 includes block 1 and block 3.Plane 0 and plane 1 each have page Depositor is so that the block being located at plane 0 can be with parallel work-flow with the block positioned at plane 1.Flash chip can have varying number Page.Flash chip can also include one or more tube cores.
According to embodiments of the invention, the page 211 of solid-state disk 200, the page 231 of solid-state disk 220 and the page of solid-state disk 260 261 are grouped together, and form memory cell group.China in Application No. 201310003789.1 and 201310003898.3 The mode that the logical address from main frame is mapped to memory cell group is provided in patent application.Each in memory cell group Page is operated together, wherein can store user data and the verification data being produced by user data.When in memory cell group One or more pages damage when, the data of Recover from damaging can be carried out based on other in memory cell group page.For example, memory element Group may include N+P page, and wherein N number of page is used for storing user data, and P page is used for storing verification data.Preferably, distribute Memory cell group is so that when removing one or more of solid-state disk 200,220 and 260, can be utilized remaining solid-state disk extensive The data of storage in multiple removed solid-state disk.In one example, page 211, page 231 and page 261 are respectively in solid-state disk 200, solid In state disk 220 and solid-state disk 260, there is identical physical address, so can readily determine that composition memory cell group each Page, and the metadata that need not add.By this way, the block 0 of the chip 221 of the page 1 of the block 0 of the chip 201 of disk 200, disk 220 Page 1 form another memory cell group with the page 1 of the block 0 of chip 261 of disk 260.Although showing in the embodiment of fig. 2 Memory cell group includes 3 pages it will be understood that memory cell group can have the page of other varying numbers.
In one embodiment, memory cell group includes coming a multiple solid-state disk(200th, 220 and 260)Each Page.In another embodiment, memory cell group includes the one or more page from multiple solid-state disks.Memory cell group In can also include from a solid-state disk multiple pages.
With continued reference to Fig. 2, in one embodiment, page 215, page 235 and page 265 form memory cell group.Page 215, page 235 can have identical or different physical address with page 265, so that providing additional metadata to indicate page 215, page 235 constitute memory cell group with page 265.Can be outside page 215, the band with page 265 for the page 235(Out-Of-Band)In data Storage metadata, can also store metadata in page 215, the user data area with page 265 for the page 235(Correspondingly reduce user The memory capacity of data), metadata can also be stored in other pages.Because the page in flash memory may damage, using metadata Indicate multiple pages of composition memory cell group, can be effectively by the page damaging exclusion, and using having identical or different physics The page composition memory cell group of address, thus improve the utilization rate of memory space.
Fig. 3 is the block diagram of computer system according to embodiments of the present invention.Computer 300 includes mainboard 310.Mainboard 310 On be disposed with CPU(CPU,Central Processing Unit)312 and expansion card 314.On mainboard 310 also The parts such as chipset, memorizer can be disposed with.Expansion card 314 is used for for multiple storage dishes being coupled to computer 300.Expansion card 314 can pass through such as PCIE(Peripheral Component Interconnect Express, quick peripheral assembly is mutual Even)、PCI(Peripheral Component Interconnect, periphery component interconnection)It is coupled to mainboard etc. multiple interfaces 310.Expansion card 314 can couple storage dish by multiple interfaces, and multiple interfaces include but is not limited to SATA(Serial Advanced Technology Attachment, Serial Advanced Technology Attachment)、USB(Universal Serial Bus, leads to Use universal serial bus)、PCIE、SCSI(Small Computer System Interface, small computer system interface)、IDE (Integrated Drive Electronics, integrated drive electronics)Deng.Multiple storage dishes include disk 320,322,324 and 326.Expansion card 314 can couple the storage dish of varying number.Flash translation layer (FTL) is may include in expansion card 314(Flash Translation Layer,FTL)Part, in order to be converted to the storage dish access request of logic-based address based on physically The storage dish access request of location.Storage dish can be solid-state disk, and solid-state disk using flash chip as storage medium, also fit by solid-state disk For other kinds of storage chip, for example, phase transition storage, Memister, ferroelectric memory etc..
In one embodiment, expansion card 314 can not be included in mainboard 310, and all on mainboard 310 by being arranged on As interfaces such as PCIE, IDE, SCSI and/or SATA, disk 320,322,324 and 326 is coupled to mainboard 310.And, calculating Flash translation layer (FTL) software is provided, in order to access the storage dish of logic-based address in the operating system of machine 300 or application program Request is converted to the storage dish access request based on physical address.Flash translation layer (FTL) part can also be arranged on CPU, chipset Or in other integrated circuits.
Control circuit can be disposed with expansion card 314, right in order to implement to control each operation described in Fig. 4-Fig. 6 The access of disk 320,322,324,326.Control circuit can be FPGA(Field-programmable gate array, scene Programmable gate array)、ASIC(Application Specific Integrated Circuit, application specific integrated circuit) Or the form of a combination thereof.Control circuit can also include one or more processors or controller.Flash translation layer (FTL) part Can be realized with hardware circuit form in FPGA, ASIC, the software form that may also be employed operating in processor or controller is real Existing.
Fig. 4 is the flow chart of the method for the multiple drivers of access according to embodiments of the present invention.In step 400, reception is write Request.Write request can come from the CPU312 of computer 300.Write request can by the operating system run on the computer 300 or Person's application software sends, and indicates in the storage device writing data into such as solid-state disk.Can carry in write request or Instruction logical address, logical address indicates the logical address space that storage device is represented.
In step 410, obtain physical address.Logical address is obtained based on write request, for example, can extract from write request Logical address is it is also possible to based on the instruction in write request(For example, the instruction to the memory space of storage logical address, or relatively Skew in previous logical address)Come indirect extraction logic address.Then, by mapping table, logical address is converted to physically Location.In a further embodiment, the multiple pages in multiple solid-state disks are grouped together, and form memory cell group.By reflecting Logical address is converted to the address for memory cell group by firing table or Sequential Mapping mode.For continuously receive write please Ask, its logical address is converted to identical memory element group address, until the N number of data page being filled with memory cell group. And then the address based on memory cell group obtains physical address.Obtained physical address indicates depositing in this memory cell group Storage unit.And write request or logical address can be with Maintenance free memory cell group structures.
In step 420, based on physical address, by the data write storage device indicated by write request.In an embodiment In, provide write queue for each solid-state disk, in the way of first in first out, storage device is write data into based on physical address.Another In one embodiment, provide shared write queue for multiple or all solid-state disks.In a further embodiment, memory cell group Include multiple pages, and write request is less than the capacity of memory cell group to corresponding data.Then go back buffering write data, in order to Generate verification data for corresponding memory cell group.In one embodiment, also write instruction memory cell group to storage device The metadata of information.
In step 430, judge whether to generate verification data.If it is not, then return to step 400 is to receive other write requests. If so, then calculate verification data in step 440.It is calculated the verification data of P page based on N number of page of user data.For example, Parity calculation verification data can be adopted, it would however also be possible to employ other usual verification data generating modes of all spectra.One In individual embodiment, before calculating verification data, interim storage corresponds to the user data of a memory cell group, and is calculating school After testing data, the memory block of releasable interim storage user data.Also it is based on memory element group address, determine for storing P The physical address of the verification data of page.
In step 450, based on physical address, by verification data write storage device.Write queue can be provided, with first in first out Mode is by verification data write storage device.In one embodiment, also write instruction memory element group information to storage device Metadata.
Fig. 5 is the flow chart of the method for the multiple drivers of access according to further embodiment of the present invention.Shown in Fig. 5 Flow chart, with respect to the flow chart in Fig. 4, further illustrate and obtained physically based on the logical address corresponding to write request The various ways of location.
In step 500, receive write request.
By step 511 and step 512, illustrate a kind of mode obtaining physical address.In step 511, distribute multiple One of solid-state disk.Solid-state disk can be distributed in several ways.For example, solid-state disk can be distributed by round robin;Can be by inquiry The state of solid-state disk, and select the mode being in the solid-state disk of idle condition to distribute solid-state disk;Also can be by comparing corresponding to solid The length of the write queue of state disk, selects the mode of the shorter solid-state disk of write queue to distribute solid-state disk.In step 512, for Selected solid-state disk, logical address is mapped to the physical address indicating this solid-state disk.Physical address may indicate that this solid-state disk The physical location of page.In one embodiment, many from one or more solid-state disks for continuously multiple write request distribution Individual page forms memory cell group.N number of page of memory cell group may be from each of N number of solid-state disk, and N number of page can be located at each solid-state The same position of disk or diverse location.N number of page of memory cell group can be from one or less than N number of solid-state disk.
By step 513 and step 514, illustrate the mode of another acquisition physical address.In step 513, distribute many One of individual solid-state disk.Solid-state disk can be distributed in several ways.For example, solid-state disk can be distributed by round robin;Can be by looking into Ask the state of solid-state disk, and select the mode being in the solid-state disk of idle condition to distribute solid-state disk;Also can by compare corresponding to The length of the write queue of solid-state disk, selects the mode of the shorter solid-state disk of write queue to distribute solid-state disk.In step 514, pin To selected solid-state disk, using the write pointer of this solid-state disk as the physical address of data to be write, and it is incremented by this write pointer.With this Mode, each solid-state disk has the write pointer for its own, and write pointer indicates the position of data to be write so that at one Continuous write operation on solid-state disk can be carried out on the continuous physical address of this solid-state disk, and then can reduce in erasure balance During caused write enlarge-effect, thus improving the service life of storage device.Physical address may indicate that this solid-state disk The physical location of page.In one embodiment, many from one or more solid-state disks for continuously multiple write request distribution Individual page forms memory cell group.N number of page of memory cell group may be from each of N number of solid-state disk, and N number of page can be located at each solid-state The same position of disk or diverse location.N number of page of memory cell group can be from one or less than N number of solid-state disk.
By step 515 and step 516, illustrate the mode of another acquisition physical address.In step 515, distribution is deposited Storage unit group.Memory cell group includes multiple pages.Constitute memory element multiple pages be derived from multiple solid-state disks.For example, store Unit group may include N+P page, and N number of page is used for storing user data, and P page is used for storing verification data.N+P page is derived from N+P solid-state disk, each solid-state disk provides a page.In another embodiment, N+P page is derived from less than N+P solid-state disk. In one embodiment, during the storage device including multiple solid-state disks initializes, determine the quantity of memory cell group and deposit Storage unit group is to the mapping mode of Physical Page.Multiple pages of memory cell group can be located at same position or the difference of multiple solid-state disks Position.Preferably, distribution memory cell group is so that the continuous write operation on a solid-state disk can be continuous in this solid-state disk Physical address on carry out.For example, if a page of the memory cell group of current distribution has physical address P (i), when under distribution During one memory cell group, select the memory cell group corresponding to physical address P (i+1).In another example, memory cell group The N+P page of K is derived from each of N+P solid-state disk, and this N+P page has identical physical address P (K), and stores list Each page of tuple K+1 has identical physical address P(K+1);Then after distribution memory element K, distribute memory cell group K +1.In step 516, for the memory cell group of distribution, using the write pointer of this memory cell group as data to be write physics Address, and it is incremented by this write pointer.In this way, current memory cell group has the write pointer for its own, and write pointer indicates The position of data to be write.
By step 517 and step 518, illustrate the mode of another acquisition physical address.In step 517, distribution is deposited Storage unit group.In step 518, for the memory cell group of distribution, not yet allocated Physical Page in select storage unit group, will The address of this Physical Page is as the physical address being distributed.Can select not yet allocated in physical location group in several ways Physical Page.For example, can idle shape based on the multiple disks corresponding to not yet allocated multiple Physical Page in physical location group State is selecting Physical Page;It is also based on the not yet allocated multiple disks corresponding to multiple Physical Page in memory cell group Write queue length is selecting Physical Page.
In step 520, based on physical address, by the data write storage device indicated by write request.
In step 530, judge whether to generate verification data.If it is not, then return to step 500 is to receive other write requests. If so, then calculate verification data in step 540.Also determine physical address for verification data.For example, in memory cell group User data, the verification data distribution being corresponding belongs to the physical address of P page of this memory cell group, and this P page is used for Storage verification data.Again for example, the verification data generated for user data and based on user data, allocated physical address, And make this user data and verification data be stored in same memory cell group.
In step 550, based on physical address, by verification data write storage device.
Fig. 6 be according to the present invention still further embodiment access multiple drivers method flow chart.Institute in Fig. 6 The flow chart illustrating, with respect to the flow chart in Fig. 4, further illustrates the various ways determining whether to generate verification data. In general, after receiving whole user data of a memory cell group, verification data is generated based on these user data. It is also desirable to generate verification data in the case of shutdown or power down etc. are some other.
In step 600, receive write request.In step 610, obtain physical address.In step 620, based on physical address, will Data write storage device indicated by write request.
Step 632 illustrates a kind of acquisition and determines whether to generate the mode of verification data.In step 632, it is determined whether Received to the whole user data for a memory cell group.If it is not, then return to step 600 with receive others write please Ask.If so, then calculate verification data in step 640.Whole user data of one memory cell group can for example will be stored N number of page in this memory cell group.In one embodiment, the data corresponding in multiple write requests of order reception reaches During N number of page of size, determine the whole user data having been received by for a memory cell group.In another embodiment In, when the N number of page in memory cell group has been allocated, determine the whole users having been received by for a memory cell group Data.
Step 634 illustrates another kind of mode obtaining and determining whether to generate verification data.In step 634, judge whether Have received that m(<N)Page data, not yet receives the whole user data for a memory cell group;Will but occur in that Seek the event forcing to calculate verification data.Calculating verification data is forced to be likely due to the fortuitous events such as computer power down, shutdown, Can also be and receive operating system or application program sends washes away buffer-request or m page data is buffered oversize Time.If do not calculated verification data, the m page data of institute's interim storage will be lost, and also cannot obtain on a storage device completing Memory cell group.If being judged as NO of step 634, return to step 600 is to receive other write requests;If it has, then in step Rapid 640 calculating verification datas.And for calculating verification data, also using predetermined data value(For example, 0,1 or other predetermined values) Fill N-m page data so that the m page data receiving and the N-m page data filled constitute N page data, and can be in step 640 P page of verification data of middle calculating.Garbage collection operation can also be executed in storage device or solid-state disk, using garbage collection operation The write request filling N-m page data of middle generation.In another embodiment, the data of reception may not be by page boundary alignment , correspondingly, the data filled may not be by page boundary alignment.
Step 636 illustrates another kind of mode obtaining and determining whether to generate verification data.In step 636, judge whether Have received that m(<N)Page data, not yet receives the whole user data for a memory cell group;But in write request In indicate data to be write and only have m page.Indicate data to be write and only have m page it is meant that being derived from write request The write operation of operating system or application program has completed, and implies and may not have follow-up writing within the future a period of time Request;May also mean that operating system or application program prediction write request unlikely for a period of time in the future.Here In the case of, continuing interim storage m page data can increase power consumption, and reduces the performance of storage device because memory space is occupied. If being judged as NO of step 636, return to step 600 is to receive other write requests;If it has, then calculating school in step 640 Test data.And for calculating verification data, also using predetermined data value(For example, 0,1 or other predetermined values)Filling N-m number of pages According to so that the N-m page data of the m page data that receives and filling constitutes N page data, and P page of school can be calculated in step 640 Test data.Garbage collection operation can also be executed on storage device or solid-state disk, using writing of producing in garbage collection operation Request filling N-m page data.In another embodiment, the data of reception may not be by page boundary alignment, correspondingly, institute The data of filling may not be by page boundary alignment.
Step 638 illustrates another kind of mode obtaining and determining whether to generate verification data.In step 638, judge whether Have received that m(<N)Page data, not yet receives the whole user data for a memory cell group;But it is intended in storage Garbage collection operation is executed on equipment.If it is not, then return to step 600 is to receive other write requests;If so, then returned using rubbish The write request producing in making of bringing drill to an end fills N-m page data, and calculates P page of verification data in step 640.In another embodiment In, the data of reception may not be that correspondingly, the data filled may not be by page boundary alignment by page boundary alignment 's.
In step 650, based on physical address, by verification data write storage device.
By the embodiment of present invention as described above, just data multiple solid-states of storage device can be simultaneously written Disk, improves the degree of parallelism of write operation.And, provide the protection extra to data by memory cell group, improve storage and set Standby reliability.
Fig. 7 is the block diagram of storage device according to embodiments of the present invention.Have been disclosed in figure 3 according to the present invention above The block diagram of the computer system of embodiment.And the embodiment of Fig. 7 is the storage device providing storage service by network.Storage sets Standby 700 include backboard 710.Controller 714 is disposed with backboard 710.Chipset, memorizer etc. also can be disposed with backboard 710 Part.Controller 714 is used for for multiple storage dishes being coupled to storage device 700.Controller 714 can be deposited by multiple interfaces coupling Storage disk, multiple interfaces include but is not limited to SATA7, USB7, PCI, PCIE, SCSI7, IDE7 etc..Controller 714 also can pass through core Piece group or expansion card are indirectly coupled to storage dish.Multiple storage dishes include disk 720,722,724 and 726.Controller 714 can coupling Close the storage dish of varying number.Flash translation layer (FTL) is may include in controller 714(Flash Translation Layer,FTL)Portion Part, in order to be converted to the storage dish access request based on physical address by the storage dish access request of logic-based address.Storage Disk can be solid-state disk, and using flash chip as storage medium, solid-state disk is also applied for other kinds of storage chip to solid-state disk, For example, phase transition storage, Memister, ferroelectric memory etc..
In one embodiment, provide flash translation layer (FTL) software in the operating system or other programs of storage device 700, In order to the storage dish access request of logic-based address to be converted to the storage dish access request based on physical address.Can also be by Flash translation layer (FTL) part is arranged in CPU, chipset or other integrated circuits.
Controller 714, may be used to implement each operation described in Fig. 4-Fig. 6 above come to control to disk 720,722,724, 726 access.Controller 714 can be the form of FPGA, ASIC or a combination thereof.Controller 714 can also include one or Multiple processors or controller.Flash translation layer (FTL) part can be realized with hardware circuit form in FPGA, ASIC, may also be employed The software form operating in processor or controller is realized.
Network adapter 730,732 be there also is provided on backboard 710.There is provided two network adapter, to improve storage device Reliability.The network adapter of one or other quantity can also be provided.By network adapter 730,732, storage device 700 are coupled to network 734.Network 734 can be Ethernet, PCIE net or fiber channel network.Client 740,742 also couples To network 734, and storage device 700 is accessed by network 734.In other embodiments, client 740,742 can be not via net Network 734 and be directly coupled to network adapter 730 and/or 732.
In order to illustrate and the purpose that describes and present the description of this invention, and be not intended to disclosed shape Formula limit or the restriction present invention.To one of ordinary skill in the art, many adjustment and change are obvious.

Claims (12)

1. a kind of method of the multiple drivers for accessing storage device, methods described includes:
Receive the request writing first data into the first logical address for described storage device;
Generate the first physical address for described first logical address;
Generate writing commands and one of the plurality of driver is sent to by SATA, USB, PCIe, SCSI or ide interface, its Indicate the storage location described first data being write indicated by described first physical address;
Determine whether to generate verification data;
If so, it is based on described first data genaration the first verification data, and by described first verification data write second physically Storage location indicated by location;And
Wherein for the continuous write request receiving, the logical address of the continuous write request receiving is converted to identical memory element Group address, until the N number of page being filled with memory cell group, described N number of page is derived from the same position of N number of driver, and N is nature Number.
2. method according to claim 1, also includes:
Metadata is stored on one or more of the plurality of driver, described metadata instruction described first is physically Location, described second physical address have incidence relation.
3. method according to claim 1, wherein by selecting the first driver in the plurality of driver come for institute State the first logical address and generate the first physical address, described first physical address indicates the storage position in described first driver Put.
4. method according to claim 3, wherein provides write pointer for each driver, write pointer instruction write data Physical address, the write pointer based on selected first driver generates described first physical address, and makes described first driving The write pointer of device is incremented by.
5. method according to claim 1, wherein writes first data into for described storage device in response to receiving The request of the first logical address, distributes memory cell group, and described memory cell group includes multiple memory element, the plurality of storage Each in unit is located at one of the plurality of driver.
6. method according to claim 5, wherein provides write pointer for memory cell group, and the described storage of write pointer instruction is single One of tuple memory element, the write pointer based on the memory cell group distributed generates described first physical address, and makes The write pointer of the memory cell group distributed indicates another memory element in described memory cell group.
7. method according to claim 5, wherein in response to distributing memory cell group, each based on described memory cell group The state of multiple drivers that individual memory element is located, selects a memory element to come for described the from described memory cell group One logical address generates the first physical address, and described first physical address indicates selected memory element.
8. method according to claim 1, if wherein received the N number of data for generating verification data, really Surely generate verification data, N is natural number.
9. the method according to claim 1 or 8, if wherein not yet receiving the N number of data for generating verification data, fills out Fill tentation data to form the N number of data for generating verification data, and determine generation verification data.
10. the method according to claim 1 or 8, if wherein not yet receiving the N number of data for generating verification data, N number of data for generating verification data is formed by execution garbage collection operation, and determines generation verification data.
11. methods according to claim 8, wherein in described request, instruction generates verification data.
A kind of 12. devices of the multiple drivers for accessing storage device, described device includes:
For receiving the module of the request writing first data into the first logical address for described storage device;
For generating the module of the first physical address for described first logical address;
For generating writing commands and one of the plurality of driver being sent to by SATA, USB, PCIe, SCSI or ide interface Module, said write order instruction by described first data write described first physical address indicated by storage location;
It is used to determine whether to generate the module of verification data;
For determine generate verification data in the case of be based on described first data genaration the first verification data, and by described the One verification data writes the module of the storage location indicated by module of the second physical address;And
For for the continuous write request receiving, the logical address of the continuous write request receiving being converted to identical memory element Until being filled with N number of page in memory cell group of module, described N number of page is derived from the same position of N number of driver, N to group address It is natural number.
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 CN103150261A (en) 2013-06-12
CN103150261B true 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)

Families Citing this family (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
DE102015211320A1 (en) * 2015-06-19 2016-12-22 Robert Bosch Gmbh Storage unit for automatically multiplying the contents of a storage location, and data network with storage unit
DE102015113414B4 (en) 2015-08-14 2023-02-23 Infineon Technologies Ag Error correction using WOM codes
CN107562648B (en) * 2016-07-01 2021-04-06 北京忆恒创源科技有限公司 Lock-free FTL (fiber to the Home) access method and device
CN107562654B (en) * 2016-07-01 2020-10-09 北京忆恒创源科技有限公司 IO command processing method and device
CN107885456B (en) * 2016-09-29 2022-09-16 北京忆恒创源科技股份有限公司 Reducing conflicts for IO command access to NVM
CN109086219B (en) * 2017-06-14 2022-08-05 北京忆恒创源科技股份有限公司 De-allocation command processing method and storage device thereof
KR102585883B1 (en) * 2018-09-18 2023-10-10 에스케이하이닉스 주식회사 Operating method of memory system and memory system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102830942A (en) * 2012-06-28 2012-12-19 记忆科技(深圳)有限公司 Method for mapping disk array of solid hard disk and solid hard disk

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035974B2 (en) * 2002-11-06 2006-04-25 Synology Inc. RAID-5 disk having cache memory implemented using non-volatile RAM
US9003153B2 (en) * 2010-11-08 2015-04-07 Greenliant Llc Method of storing blocks of data in a plurality of memory devices in a redundant manner, a memory controller and a memory system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102830942A (en) * 2012-06-28 2012-12-19 记忆科技(深圳)有限公司 Method for mapping disk array of solid hard disk and solid hard disk

Also Published As

Publication number Publication date
CN103150261A (en) 2013-06-12

Similar Documents

Publication Publication Date Title
CN103150261B (en) Method and device for simultaneously accessing multiple solid-state disks
CN103176858B (en) Storage device with multiple solid-state discs
CN103218270B (en) There is the computer of multiple solid-state disk
Chen et al. Understanding intrinsic characteristics and system implications of flash memory based solid state drives
CN107250975B (en) Data storage system and data storage method
Kim et al. Evaluating phase change memory for enterprise storage systems: A study of caching and tiering approaches
Jung et al. Revisiting widely held SSD expectations and rethinking system-level implications
Mao et al. HPDA: A hybrid parity-based disk array for enhanced performance and reliability
CN103970688B (en) Shorten the method and system that the stand-by period is write in data-storage system
Agrawal et al. Design tradeoffs for {SSD} performance
US8230159B2 (en) System, method, and computer program product for sending logical block address de-allocation status information
US20130073798A1 (en) Flash memory device and data management method
CN106354615A (en) Solid state disk log generating method and device
CN108073357A (en) The storage device of data is stored in a manner of RAID
CN105573681A (en) Method and system for establishing RAID in SSD
CN106873903B (en) Data storage method and device
US9448742B2 (en) Communication between a host and a secondary storage device
US11698734B2 (en) Collision reduction through just-in-time resource allocation
CN203191967U (en) Computer system
Chiueh et al. Software orchestrated flash array
CN203191968U (en) Storage equipment with a plurality of solid-state discs
US20130019122A1 (en) Storage device and alternative storage medium selection method
CN103914401B (en) Storage device with multiple processors
US10268386B2 (en) Data storage device including temporary storage locations
US11379326B2 (en) Data access method, apparatus and computer program product

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.