CN103218270B - There is the computer of multiple solid-state disk - Google Patents

There is the computer of multiple solid-state disk Download PDF

Info

Publication number
CN103218270B
CN103218270B CN201310076773.3A CN201310076773A CN103218270B CN 103218270 B CN103218270 B CN 103218270B CN 201310076773 A CN201310076773 A CN 201310076773A CN 103218270 B CN103218270 B CN 103218270B
Authority
CN
China
Prior art keywords
data
memory element
expansion card
write
page
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
CN201310076773.3A
Other languages
Chinese (zh)
Other versions
CN103218270A (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 CN201310076773.3A priority Critical patent/CN103218270B/en
Publication of CN103218270A publication Critical patent/CN103218270A/en
Priority to PCT/CN2014/073155 priority patent/WO2014139390A1/en
Application granted granted Critical
Publication of CN103218270B publication Critical patent/CN103218270B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Provide computer system.This computer system, the expansion card including mainboard, being arranged on mainboard, CPU and be coupled to multiple drivers of described expansion card;Described CPU writes first data into the request of the first logical address and is sent to described expansion card;Described expansion card is that described first logical address generates the first physical address, and generates writing commands and be sent to one of the plurality of driver, and its instruction will described first data described first physical address of write;Described expansion card also determines whether to generate verification data, if so, verifies data based on described first data genaration first, and generates the second writing commands and be sent to one of the plurality of driver, and described first verification data are write the second physical address by its instruction.The present invention solves in the raid storage devices that solid-state disk is formed and writes scale-up problem, extends the service life of storage device.

Description

There is the computer of multiple solid-state disk
Technical field
The present invention relates to solid storage device (Solid Storage Device, SSD), more specifically, the present invention Relate to access the computer of multiple solid-state disk simultaneously.
Background technology
Similar with mechanical type hard disk, solid storage device is also the Large Copacity for computer system, non-volatile Storage device.Solid storage device is typically using flash memory (Flash) as storage medium.High performance solid-state storage sets For being used for high-performance computer.
Memory target (Target) is that the shared chip in nand flash memory encapsulation enables (CE, Chip Enable) One or more logical blocks (Logic Unit) of signal.Each logical block has LUN (LUN, Logic Unit Number).One or more tube core (Die) can be included in nand flash memory encapsulation.Typically, logic Unit is corresponding to single tube core.Logical block can include multiple plane (Plane).Multiple flat in logical block Face can with parallel access, and the multiple logical blocks in nand flash memory chip can perform independently of one another order and Report state.Can be from Http:// www.micron.com/~/media/Documents/Products/Other%20Documents/ONFI3_0Gold. Ashx acquisition " Open NAND Flash Interface Specification(Revision3.0) " in, it is provided that About target (target), logical block, LUN, the implication of plane (Plane), it is one of prior art Point.
Solid storage device can have expansion card shape, may be mounted to the PCIE on mainboard or similar interface. Solid storage device also can have 3.5,2.5 or 1.8 inches of driver shapes, may be mounted to frame or dish battle array equipment In, it is commonly referred to as solid-state disk (Solid State Disk).
The Chinese patent application of Publication No. CN102656567A discloses the data pipe in solid-state memory Reason.Referring to Fig. 1, one group of page of solid-state memory is referred to as " step pitch (stride) ", and each step pitch includes coming From one group of page of each passage, one group of page of the most each passage is referred to as " bar " (strip).For identifying LBA(Logic Block Address, LBA) write request, be implemented in step pitch from LBA to PBA(Physical Block Address, physical block address) mapping, and fill each (Fig. 1 in step pitch In id be respectively 31,52,44,67 bar).Can be continuous or parallel to the filling of multiple in step pitch 's.So, by RAID(Redundant Array of Independent Disks, RAID) mould Formula is incorporated in solid storage device, improves the performance and reliability of solid storage device.
But, in storage device, possible multiple solid-state disks or multiple storage card, each solid-state disk or storage card may tools Having different capacity and performance, as time goes by, each solid-state disk or storage card also can show different spies Property.When writing data, it is considered to the particular characteristic of each solid-state disk or storage card will assist in and improves storage device Performance.And, data volume entrained in write request may be different from the data capacity of " step pitch ".Needs carry The capacity of the access request from client and the memory element of storage device is mated for corresponding means.
Summary 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, it is provided that a kind of method of multiple drivers for accessing storage device, Described method includes: receive the request writing first data into the first logical address for described storage device;
The first physical address is generated for described first logical address;Generating writing commands, its instruction is by described first number According to writing described first physical address;Determine whether to generate verification data;If so, based on described first data genaration First verification data, and described first verification data are write the second physical address.
Method according to the first aspect of the invention, also includes: on one or more in the plurality of driver Storage metadata, described metadata indicates described first physical address, described second physical address to have incidence relation.
Method according to the first aspect of the invention, wherein by selecting the first driver in the plurality of driver Generating the first physical address for described first logical address, described first physical address indicates described first driver In storage position.
Method according to the first aspect of the invention, wherein provides write pointer, write pointer instruction to write for each driver Entering the physical address of data, write pointer based on the first selected driver generates described first physical address, and The write pointer making described first driver is incremented by.
Method according to the first aspect of the invention, wherein writes first data into for described storage in response to reception The request of the first logical address of equipment, distributes memory element group, and described storage group includes multiple memory element, institute That states in multiple memory element each is positioned at one of the plurality of driver.
Method according to the first aspect of the invention, wherein said memory element is one or more page.
Method according to the first aspect of the invention, wherein provides write pointer for memory element group, and write pointer indicates institute Stating a memory element in memory element group, write pointer based on the memory element group distributed generates described first Physical address, and make the write pointer of distributed memory element group indicate another storage in described memory element group Unit.
Method according to the first aspect of the invention, wherein in response to distribution memory element group, single based on described storage The state of multiple drivers at each memory element place of tuple, selects a storage from described memory element group Unit generates the first physical address for described first logical address, depositing selected by described first physical address instruction Storage unit.
Method according to the first aspect of the invention, wherein provides for each driver in the plurality of driver and writes Queue, for memory writer command before writing commands is sent to driver.
Method according to the first aspect of the invention, if received for generating the N number of of verification data Data, it is determined that generating verification data, N is natural number.
Method according to the first aspect of the invention, if the most not yet received for generating the N number of of verification data Data, fill tentation data and 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 the most not yet received for generating the N number of of verification data Data, form the N number of data for generating verification data by performing garbage collection operation, and determine generation school Test 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 the most not yet received for generating the N number of of verification data In data, and described request, instruction generates verification data, fills data and is formed for generating the N number of of verification data Data, and generate verification data.
Method according to the first aspect of the invention, if the most not yet received for generating the N number of of verification data Data, and force the event calculating verification data to occur, fill data and formed for generating the N number of of verification data Data, and generate verification data.
Method according to the first aspect of the invention, if the most not yet received for generating the N number of of verification data In data, and described request, instruction generates verification data, performs garbage collection operation and is formed for generating check number According to N number of data, and generate verification data.
Method according to the first aspect of the invention, if the most not yet received for generating the N number of of verification data Data, and force the event calculating verification data to occur, perform garbage collection operation and formed for generating check number According to N number of data, and generate verification data.
According to the second aspect of the invention, it is provided that the device of a kind of multiple drivers for accessing storage device, Described device includes: for receiving the request writing first data into the first logical address for described storage device Module;For generating the module of the first physical address for described first logical address;For generating writing commands Module, described first data are write described first physical address by said write order instruction;It is used to determine whether raw Become the module of verification data;For determine generation verification data in the case of based on described first data genaration first Verification data, and described first verification data are write the module of the second physical address.
According to the third aspect of the invention we, it is provided that a kind of storage device, including network adapter, controller and It is coupled to multiple drivers of described controller;Described storage device is coupled to network by described network adapter, and Receiving the access request from client, the instruction of described access request writes first data into for described storage device The first logical address;Described controller 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 described first data are write described first physical address by its instruction; Described controller also determines whether to generate verification data, if so, verifies data based on described first data genaration first, And generate the second writing commands and be sent to one of the plurality of driver, described first verification data are write by its instruction Second physical address.
Storage device according to the third aspect of the invention we, also includes: metadata is stored in described by described controller One or more in multiple drivers, described metadata indicates described first physical address, described second physically Location has incidence relation.
Storage device according to the third aspect of the invention we, wherein said controller is by selecting the plurality of driver In the first driver generate the first physical address for described first logical address, described first physical address instruction Storage position in described first driver.
Storage device according to the third aspect of the invention we, safeguards for each driver the most in the controller and writes Pointer, the physical address of write pointer instruction write data;Described controller is additionally based upon the first selected driver Write pointer generates described first physical address, and makes the write pointer of described first driver be incremented by.
Storage device according to the third aspect of the invention we, the first data are write by wherein said controller in response to receiving Entering the request of the first logical address for described storage device, distribute memory element group, described storage group includes many Individual memory element, each in the plurality of memory element is positioned at one of the plurality of driver.
Storage device according to the third aspect of the invention we, wherein said controller is that finger is write in the maintenance of memory element group Pin, write pointer indicates a memory element in described memory element group, and described controller is based on the storage distributed The write pointer of unit group generates described first physical address, and makes the write pointer of distributed memory element group indicate institute State another memory element in memory element group.
Storage device according to the third aspect of the invention we, wherein in response to distribution memory element group, described controller Inquire about the state of multiple drivers at each memory element place of described memory element group, and based on described state from Described memory element group select a memory element generate the first physical address for described first logical address, institute State the memory element selected by the first physical address instruction.
Storage device according to the third aspect of the invention we, wherein said controller is every in the plurality of driver Individual driver provides write queue, and described write queue is for storage write life before writing commands is sent to driver Order.
Storage device according to the third aspect of the invention we, if the most described storage device has received for generating N number of data of verification data, the most described controller determines generation verification data, and N is natural number.
Storage device according to the third aspect of the invention we, if the most described storage device not yet receives for generating N number of data of verification data, the most described controller is filled tentation data and is formed the N for generating verification data Individual data, and determine generation verification data.
Storage device according to the third aspect of the invention we, if the most described storage device not yet receives for generating N number of data of verification data, the one or more rubbish for the plurality of driver initiated by the most described controller Reclaimer operation forms the N number of data for generating verification data, and determines 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 the most not yet receiving the N for generating verification data In individual data, and described request, instruction generates verification data, fills data and forms the N for generating verification data Individual data, and generate verification data.
Storage device according to the third aspect of the invention we, if the most not yet receiving the N for generating verification data Individual data, and force the event calculating verification data to occur, fill data and form the N for generating verification data Individual data, and generate verification data.
Storage device according to the third aspect of the invention we, if the most not yet receiving the N for generating verification data In individual data, and described request, instruction generates verification data, performs garbage collection operation and is formed for generating verification N number of data of data, and generate verification data.
Storage device according to the third aspect of the invention we, if the most not yet receiving the N for generating verification data Individual data, and force the event calculating verification data to occur, perform garbage collection operation and formed for generating verification N number of data of data, and generate verification data.
According to the fourth aspect of the invention, it is provided that a kind of computer system, including mainboard, it is arranged on mainboard Expansion card, CPU and be coupled to multiple drivers of described expansion card;Described CPU is writing first data into The request of the first logical address is sent to described expansion card;Described expansion card is that described first logical address generates first Physical address, and generate writing commands and be sent to one of the plurality of driver, said write order indicates described First data write described first physical address;Described expansion card also determines whether to generate verification data, if so, base Verify data in described first data genaration first, and generate the second writing commands be sent to the plurality of driver it One, described first verification data are write the second physical address by described second writing commands instruction.
Computer system according to the fourth aspect of the invention, also includes: metadata is stored in institute by described expansion card That states in multiple driver is one or more, described metadata instruction described first physical address, described second physics Address has incidence relation.
Computer system according to the fourth aspect of the invention, wherein said expansion card is by selecting the plurality of driving The first driver in device generates the first physical address for described first logical address, and described first physical address refers to Show the storage position in described first driver.
Computer system according to the fourth aspect of the invention, is wherein that each driver is safeguarded in described expansion card Write pointer, the physical address of write pointer instruction write data;Described expansion card is additionally based upon the first selected driver Write pointer generate described first physical address, and make described first driver write pointer be incremented by.
Computer system according to the fourth aspect of the invention, wherein said expansion card is in response to receiving the first data Write, for the request of the first logical address of described storage device, distributes memory element group, and described storage group includes Multiple memory element, each in the plurality of memory element is positioned at one of the plurality of driver.
Computer system according to the fourth aspect of the invention, wherein said expansion card is that finger is write in the maintenance of memory element group Pin, write pointer indicates a memory element in described memory element group, and described expansion card is based on the storage distributed The write pointer of unit group generates described first physical address, and makes the write pointer of distributed memory element group indicate institute State another memory element in memory element group.
Computer system according to the fourth aspect of the invention, wherein in response to distribution memory element group, described extension The state of multiple drivers at each memory element place of described memory element group inquired about by card, and based on described state A memory element is selected to generate the first physical address for described first logical address from described memory element group, Memory element selected by described first physical address instruction.
Computer system according to the fourth aspect of the invention, wherein said expansion card is in the plurality of driver Each driver provides write queue, and described write queue is for storage write before writing commands is sent to driver Order.
Computer system according to the fourth aspect of the invention, if the most described expansion card has received for generating N number of data of verification data, it is determined that generating verification data, N is natural number.
Computer system according to the fourth aspect of the invention, if the most described expansion card not yet receives for generating N number of data of verification data, the most described expansion card is filled tentation data and is formed the N for generating verification data Individual data, and determine generation verification data.
Computer system according to the fourth aspect of the invention, if the most described expansion card not yet receives for generating N number of data of verification data, the most described expansion card initiates the one or more rubbish for the plurality of driver Reclaimer operation forms the N number of data for generating verification data, and determines 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 the most not yet received for generating verification data In N number of data, and described request, instruction generates verification data, fills data and is formed for generating verification data N number of data, and generate verification data.
Computer system according to the fourth aspect of the invention, if the most not yet received for generating verification data N number of data, and force the event calculating verification data to occur, fill data and formed for generating verification data N number of data, and generate verification data.
Computer system according to the fourth aspect of the invention, if the most not yet received for generating verification data In N number of data, and described request, instruction generates verification data, performs garbage collection operation and is formed for generating school Test N number of data of data, and generate verification data.
Computer system according to the fourth aspect of the invention, if the most not yet received for generating verification data N number of data, and force the event calculating verification data to occur, perform garbage collection operation and formed for generating school Test N number of data of data, and generate verification data.
Accompanying drawing explanation
When reading together with accompanying drawing, by with reference to detailed description to illustrative embodiment below, will be optimal geographical Solving the present invention and preferably use pattern and its further purpose and advantage, 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 accessing multiple drivers according to embodiments of the present invention;
Fig. 5 is the flow chart of the method accessing multiple drivers according to further embodiment of the present invention;
Fig. 6 is the flow chart of the method accessing multiple drivers according to the present invention still further embodiment;And
Fig. 7 is the block diagram of storage device according to embodiments of the present invention.
Detailed description of the invention
Fig. 2 is the data tissue of storage device according to an embodiment of the invention.Storage device include 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 Driver.Solid-state disk 200 can include flash chip 201 and flash chip 202.Solid-state disk 220 includes flash memory core Sheet 221, and solid-state disk 260 includes flash chip 261.Solid-state disk 200 may also comprise the flash memory core of varying number Sheet.And solid-state disk 200, solid-state disk 220 can include varying number and/or different capabilities respectively with solid-state disk 260 Flash chip.Flash chip in solid-state disk can be organized as multiple passage, with in the interface pin quantity used And accept or reject between the concurrent access of multiple flash chip.Such as, Application No. 201210448894.1, The Chinese patent application of 201210449387.X provides the multiple mode that flash chip is organized as passage.
As an example, flash chip 201 includes multiple pieces, such as block 0, block 1, block 2 and block 3.Flash memory core Sheet can also include the block of other quantity.Multiple page is included at each piece.For nand flash memory, with page it is Unit reads and writes operation, and implements erasing operation in units of block, and this is by the physical arrangement of nand flash memory Determine.As an example, flash chip 201 also includes 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 register so that be positioned at plane 0 Block and the block being positioned at plane 1 can be with parallel work-flows.Flash chip can have the page of varying number.Flash chip is also One or more tube core can be included.
According to embodiments of the invention, the page 211 of solid-state disk 200, page 231 and the solid-state disk 260 of solid-state disk 220 Page 261 be grouped together, form memory element group.Application No. 201310003789.1 with The Chinese patent application of 201310003898.3 provides the logical address from main frame is mapped to memory element The mode of group.Each page in memory element group is operated together, wherein can store user data and by user The verification data that data produce.When one or more pages in memory element group damage, can be based on memory element group In other pages carry out the data of Recover from damaging.Such as, memory element group can include N+P page, the most N number of page For storing user data, and P page is used for storing verification data.Preferably, distribution memory element group so that When remove in solid-state disk 200,220 and 260 one or more time, available remaining solid-state disk recovers to be moved Except the data of storage in solid-state disk.In one example, page 211, page 231 and page 261 respectively solid-state disk 200, Solid-state disk 220 and solid-state disk 260 have identical physical address, so can readily determine that composition storage is single Each page of tuple, and the metadata that need not add.By this way, the page of the block 0 of the chip 201 of dish 200 1, the page 1 of the block 0 of the chip 221 of dish 220 forms another with the page 1 of the block 0 of the chip 261 of dish 260 Memory element group.Although showing that memory element group includes 3 pages in the embodiment of fig. 2, it will be understood that deposit Storage unit group can have the page of other varying numbers.
In one embodiment, memory element group includes coming the every of a multiple solid-state disk (200,220 and 260) The page of one.In another embodiment, what memory element group included from multiple solid-state disks is one or more Page.Memory element group can also include the multiple pages from a solid-state disk.
With continued reference to Fig. 2, in one embodiment, page 215, page 235 form memory element group with page 265. Page 215, page 235 can have identical or different physical address with page 265, so that provide additional first number Memory element group is constituted with page 265 according to indicating page 215, page 235.Can be at page 215, page 235 and page Outer (Out-Of-Band) data of the band of 265 store metadata, it is also possible at page 215, page 235 and page 265 User data area in store metadata (correspondingly reducing the memory capacity of user data), it is also possible at other pages Middle storage metadata.Owing to the page in flash memory may damage, utilize the multiple of metadata instruction composition memory element group Page, can get rid of the page damaged effectively, and utilizes the page composition storage with identical or different physical address single Tuple, 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.Main CPU (CPU, Central Processing Unit) 312 and expansion card 314 it is disposed with on plate 310. The parts such as chipset, memorizer also can be disposed with on mainboard 310.Expansion card 314 is for coupling multiple storage dishes To computer 300.Expansion card 314 can pass through such as PCIE(Peripheral Component Interconnect Express, quick peripheral assembly interconnecting), PCI(Peripheral Component Interconnect, peripheral assembly is mutual Even) etc. multiple interfaces is coupled to mainboard 310.Expansion card 314 can couple storage dish by multiple interfaces, multiple connects Mouth 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, integrated drive electricity Son) etc..Multiple storage dishes include dish 320,322,324 and 326.Expansion card 314 can couple varying number Storage dish.Expansion card 314 can include flash translation layer (FTL) (Flash Translation Layer, FTL) parts, use The storage dish access request of logic-based address to be converted to storage dish access request based on physical address.Storage Dish can be solid-state disk, and solid-state disk is using flash chip as storage medium, and solid-state disk is also applied for other kinds of depositing Storage chip, such as, phase transition storage, Memister, ferroelectric memory etc..
In one embodiment, mainboard 310 can not include expansion card 314, and by being arranged on mainboard 310 On the interface such as such as PCIE, IDE, SCSI and/or SATA, dish 320,322,324 and 326 is coupled To mainboard 310.And, the operating system or application program of computer 300 provide flash translation layer (FTL) software, In order to the storage dish access request of logic-based address to be converted to storage dish access request based on physical address.Also Flash translation layer (FTL) parts can be arranged in CPU, chipset or other integrated circuits.
Control circuit can be disposed with on expansion card 314, each operation described in Fig. 4-Fig. 6 is controlled in order to implementing The system access to dish 320,322,324,326.Control circuit can be FPGA(Field-programmable gate Array, field 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 processor or controller. Flash translation layer (FTL) parts can realize with hardware circuit form in FPGA, ASIC, it is possible to uses and operates in processor Or the software form in controller realizes.
Fig. 4 is the flow chart of the method accessing multiple drivers according to embodiments of the present invention.In step 400, connect Receive write request.Write request can come from the CPU 312 of computer 300.Write request can be by operating in computer 300 On operating system or application software send, and indicate and write data in the storage device of such as solid-state disk. Can carry or indicate logical address in write request, the logical address that logical address instruction storage device is represented is empty Between.
In step 410, obtain physical address.Logical address is obtained based on write request, such as can be from write request Extraction logic address, it is also possible to based on instruction (such as, the memory space to storage logical address in write request Instruction, or relative to the skew of previous logical address) come indirect extraction logic address.Then, will by mapping table Logical address is converted to physical address.In a further embodiment, the multiple pages in multiple solid-state disks are grouped in Together, composition memory element group.By mapping table or Sequential Mapping mode, logical address is converted to for storing list The address of tuple.For the write request continuously received, its logical address is converted to identical memory element group ground Location, until the N number of data page being filled with in memory element group.And then address of based on memory element group obtains physics Address.Obtained physical address indicates the memory element in this memory element group.And write request or logically Location can be with Maintenance free memory element group structure.
In step 420, based on physical address, by the data write storage device indicated by write request.A reality Execute in example, provide write queue for each solid-state disk, write data into based on physical address in the way of first in first out and deposit Storage equipment.In another embodiment, the write queue shared is provided for multiple or all solid-state disks.Further In embodiment, memory element group includes multiple page, and write request is less than memory element group to corresponding data Capacity.Then go back buffering write data, generate verification data by the memory element group thinking correspondence.An embodiment In, also to the metadata of storage device write instruction memory element group information.
In step 430, it may be judged whether generate verification data.If it is not, then return step 400 to receive writing of other Request.The most then calculate verification data in step 440.User data based on N number of page is calculated P page Verification data.Such as, parity calculation can be used to verify data, it would however also be possible to employ usual its of all spectra He verifies data generating mode.In one embodiment, before calculating verification data, store corresponding to one temporarily The user data of memory element group, and after calculating verification data, the releasable interim memory block storing user data. It is additionally based upon memory element group address, determines the physical address of verification data for storing P page.
In step 450, based on physical address, will verification data write storage device.Write queue can be provided, with elder generation Entering first to go out mode will verification data write storage device.In one embodiment, also deposit to storage device write instruction The metadata of storage unit group information.
Fig. 5 is the flow chart of the method accessing multiple drivers according to further embodiment of the present invention.Institute in Fig. 5 The flow chart illustrated, relative to the flow chart in Fig. 4, further illustrate based on corresponding to write request logically Location obtains the various ways of physical address.
In step 500, receive write request.
By step 511 and step 512, illustrate a kind of mode obtaining physical address.In step 511, point Join one of multiple solid-state disk.Solid-state disk can be distributed in several ways.Such as, solid-state can be distributed by round robin Dish;By inquiring about the state of solid-state disk, and the mode of the solid-state disk being in idle condition can be selected to distribute solid-state disk; Also by comparing the length writing queue corresponding to solid-state disk, select to write the mode of the shorter solid-state disk of queue Distribution solid-state disk.In step 512, for selected solid-state disk, logical address is mapped to and indicates this solid-state disk Physical address.Physical address may indicate that the physical location of the page of this solid-state disk.In one embodiment, for continuous print The multiple pages of composition memory element groups from one or more solid-state disks of multiple write requests distribution.Memory element group N number of page may be from each of N number of solid-state disk, and N number of page can be located at same position or the diverse location of each solid-state disk. N number of page of memory element group can be from one or less than N number of solid-state disk.
By step 513 and step 514, illustrate another mode obtaining physical address.In step 513, Distribute one of multiple solid-state disk.Solid-state disk can be distributed in several ways.Such as, can be solid by round robin distribution State dish;By inquiring about the state of solid-state disk, and the mode of the solid-state disk being in idle condition can be selected to distribute solid-state disk; Also by comparing the length writing queue corresponding to solid-state disk, select to write the mode of the shorter solid-state disk of queue Distribution solid-state disk.In step 514, for selected solid-state disk, using the write pointer of this solid-state disk as number to be write According to physical address, and be incremented by this write pointer.In this way, each solid-state disk has the write pointer for himself, Write pointer indicates the position of data to be write so that the continuous print write operation on a solid-state disk can be in this solid-state Carry out on the continuous print physical address of dish, and then can reduce during erasure balance and caused to write enlarge-effect, Thus improve the service life of storage device.Physical address may indicate that the physical location of the page of this solid-state disk.At one In embodiment, the multiple pages of composition storages from one or more solid-state disks for the distribution of continuous print multiple write request are single Tuple.N number of page of memory element group may be from each of N number of solid-state disk, and N number of page can be located at each solid-state disk Same position or diverse location.N number of page of memory element group can be from one or less than N number of solid-state disk.
By step 515 and step 516, illustrate another mode obtaining physical address.In step 515, Distribution memory element group.Memory element group includes multiple page.Constitute memory element multiple pages from multiple solid-states Dish.Such as, memory element group can include N+P page, and N number of page is used for storing user data, and P page is used for Storage verification data.N+P page provides a page from N+P solid-state disk, each solid-state disk.Real at another Executing in example, N+P page is from less than N+P solid-state disk.In one embodiment, depositing including multiple solid-state disks During storage equipment initializes, determine the quantity of memory element group and the memory element group mapping mode to Physical Page. Multiple pages of memory element group can be located at same position or the diverse location of multiple solid-state disk.Preferably, distribution storage Unit group so that the continuous print write operation on a solid-state disk can be enterprising at the continuous print physical address of this solid-state disk OK.Such as, if a page of the memory element group of current distribution has physical address P (i), when next storage of distribution During unit group, select the memory element group corresponding to physical address P (i+1).In another example, memory element N+P the page of group K is from each of N+P solid-state disk, and this N+P page has identical physical address P (K), and each page of memory element group K+1 has identical physical address P(K+1);Then in distribution storage After unit K, distribute memory element group K+1.In step 516, for the memory element group of distribution, this is deposited The write pointer of storage unit group is as the physical address of data to be write, and is incremented by this write pointer.In this way, currently Memory element group has the write pointer for himself, and write pointer indicates the position of data to be write.
By step 517 and step 518, illustrate another mode obtaining physical address.In step 517, Distribution memory element group.In step 518, for the memory element group of distribution, in select storage unit group not yet by The Physical Page of distribution, using the address of this Physical Page as the physical address distributed.Can candidate in several ways Reason unit group in be not yet allocated Physical Page.Such as, can be based on multiple things not yet allocated in physical location group The idle condition of the reason multiple disks corresponding to page selects Physical Page;Be also based in memory element group not yet by The write queue length of the multiple disks corresponding to multiple Physical Page of distribution selects Physical Page.
In step 520, based on physical address, by the data write storage device indicated by write request.
In step 530, it may be judged whether generate verification data.If it is not, then return step 500 to receive writing of other Request.The most then calculate verification data in step 540.Also determine physical address for verification data.Such as, right User data in memory element group, belongs to P page of this memory element group for corresponding verification data distribution Physical address, this P page is used for storing verification data.The most such as, for user data with based on user data The verification data generated, allocated physical address, and make this user data be stored in same storage with verification data Unit group.
In step 550, based on physical address, will verification data write storage device.
Fig. 6 is the flow chart of the method accessing multiple drivers according to the present invention still further embodiment.Fig. 6 Shown in flow chart, relative to the flow chart in Fig. 4, further illustrate determine whether generate verification data Various ways.It is said that in general, when, after the whole user data receiving a memory element group, using based on these User data generates verification data.In the case of such as shutdown or power down etc. are some other, it is also desirable to generate verification data.
In step 600, receive write request.In step 610, obtain physical address.In step 620, based on thing Reason address, by the 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, determine Whether have been received by the whole user data for a memory element group.If it is not, then return step 600 to connect Receive other write request.The most then calculate verification data in step 640.Whole users of one memory element group Data can be such as to will be stored in the N number of page in this memory element group.In one embodiment, receive in order Data corresponding to multiple write requests when reaching the size of N number of page, determine have been received by for a storage single Whole user data of tuple.In another embodiment, when the N number of page in memory element group has been allocated, Determine and have been received by the whole user data for a memory element group.
Step 634 illustrates the another kind of mode obtaining and determining whether to generate verification data.In step 634, sentence Break and whether have received that m(< N) page data, not yet receive the whole numbers of users for a memory element group According to;But occur in that the event requiring to force to calculate verification data.Force to calculate verification data to be likely due to calculate The fortuitous events such as machine power down, shutdown, it is also possible to be to receive operating system or application program sends washes away relief area Request or m page data the most buffered long time.If do not calculated check number evidence, m page temporarily stored Data will be lost, the memory element group that the most also cannot obtain.If being judged as NO of step 634, Then return step 600 to receive other write request;If it has, then calculate verification data in step 640.And For calculating verification data, predetermined data value (such as, 0,1 or other predetermined values) is also used to fill N-m page Data so that the m page data received and the N-m page data of filling constitute N page data, and can be in step P page of verification data are calculated in 640.Garbage collection operation can also be performed in storage device or solid-state disk, use The write request produced in garbage collection operation fills N-m page data.In another embodiment, the data of reception can Can not align by page boundary, correspondingly, the data filled may not be by page boundary alignment.
Step 636 illustrates the another kind of mode obtaining and determining whether to generate verification data.In step 636, sentence Break and whether have received that m(< N) page data, not yet receive the whole numbers of users for a memory element group According to;But in write request, indicate data to be write only have m page.Number to be write is indicated in write request According to only m page, it is meant that be complete from the write operation of operating system or application program, and imply Follow-up write request it is likely not to have in a period of time in the future;May also mean that operating system or application program prediction exist Unlikely there is write request in a period of time in the future.In the case, continue interim storage m page data and can increase consumption Electricity, and the performance of storage device is reduced because memory space is occupied.If being judged as NO of step 636, then return Step 600 is to receive other write request;If it has, then calculate verification data in step 640.And for calculating Verification data, also use predetermined data value (such as, 0,1 or other predetermined values) to fill N-m page data, The N-m page data making m page data and the filling received constitutes N page data, and can be in step 640 Calculate P page of verification data.Garbage collection operation can also be performed in storage device or solid-state disk, use rubbish to return The write request produced in making of bringing drill to an end fills N-m page data.In another embodiment, the data of reception are not likely to be By page boundary alignment, correspondingly, the data filled may not be by page boundary alignment.
Step 638 illustrates the another kind of mode obtaining and determining whether to generate verification data.In step 638, sentence Break and whether have received that m(< N) page data, not yet receive the whole numbers of users for a memory element group According to;But it is intended to perform on a storage device garbage collection operation.If it is not, then return step 600 to receive other Write request;The write request produced in garbage collection operation is the most then used to fill N-m page data, and in step P page of verification data are calculated in 640.In another embodiment, the data of reception are not likely to be and align by page boundary , correspondingly, the data filled may not be by page boundary alignment.
In step 650, based on physical address, will verification data write storage device.
By the embodiment of present invention as described above, just data the multiple solid of storage device can be simultaneously written State dish, improves the degree of parallelism of write operation.Further, provide the protection extra to data by memory element group, carry The high reliability of storage device.
Fig. 7 is the block diagram of storage device according to embodiments of the present invention.Have been disclosed for basis the most in figure 3 The block diagram of the computer system of the embodiment of the present invention.And the embodiment of Fig. 7 is for providing depositing of storage service by network Storage equipment.Storage device 700 includes backboard 710.Controller 714 it is disposed with on backboard 710.On backboard 710 Also can be disposed with the parts such as chipset, memorizer.Controller 714 is for being coupled to storage device by multiple storage dishes 700.Controller 714 can by multiple interfaces couple storage dish, multiple interfaces include but not limited to SATA7, USB7, PCI, PCIE, SCSI7, IDE7 etc..Controller 714 is indirectly coupled to also by chipset or expansion card Storage dish.Multiple storage dishes include dish 720,722,724 and 726.Controller 714 can couple varying number Storage dish.Controller 714 can include flash translation layer (FTL) (Flash Translation Layer, FTL) parts, use The storage dish access request of logic-based address to be converted to storage dish access request based on physical address.Storage Dish can be solid-state disk, and solid-state disk is using flash chip as storage medium, and solid-state disk is also applied for other kinds of depositing Storage chip, such as, phase transition storage, Memister, ferroelectric memory etc..
In one embodiment, the operating system or other programs of storage device 700 provide flash translation layer (FTL) Software, please in order to the storage dish access request of logic-based address to be converted to storage dish based on physical address access Ask.Flash translation layer (FTL) parts can also be arranged in CPU, chipset or other integrated circuits.
Controller 714, may be used to implement each operation described in Fig. 4-Fig. 6 above control to dish 720, 722, the access of 724,726.Controller 714 can be with the form being FPGA, ASIC or a combination thereof.Control Device 714 can also include one or more processor or controller.Flash translation layer (FTL) parts can be at FPGA, ASIC In realize with hardware circuit form, it is possible to use and operate in software form in processor or controller and realize.
Network adapter 730,732 is there also is provided on backboard 710.There is provided two network adapter, to improve The reliability of storage device.The network adapter of one or other quantity can also be provided.Pass through network adapter 730,732, storage device 700 is coupled to network 734.Network 734 can be Ethernet, PCIE net or optical fiber Channel network.Client 740,742 is also coupled to network 734, and accesses storage device 700 by network 734. In other embodiments, client 740,742 can be directly coupled to network adapter 730 not via network 734 And/or 732.
Present the description of this invention for the purpose that illustrates and describe, and be not intended to disclosed Form limit or limit the present invention.To one of ordinary skill in the art, many adjustment and change are apparent from.

Claims (10)

1. a computer system, the expansion card including mainboard, being arranged on mainboard, CPU and be coupled to described Multiple drivers of expansion card;
Described CPU is sent to described expansion card the write request writing first data into the first logical address;
Described expansion card is that described first logical address generates the first physical address, and generates writing commands and be sent to described One of multiple drivers, described first data are write described first physical address indication by said write order instruction The storage position shown;
Described expansion card also determines whether to generate verification data, if so, based on described first data genaration the first check number According to, and generate the second writing commands and be sent to one of the plurality of driver, described second writing commands instruction will Described first verification data write the storage position indicated by the second physical address;
For the write request received continuously, the logical address of the write request received continuously is converted to identical by described expansion card Memory element group address, until N number of page of being filled with in memory element group, described N number of page is from N number of The same position of driver, N is natural number;
Wherein, described expansion card is coupled to described driver by SATA, USB, PCIe, SCSI or ide interface; And
Wherein said multiple drivers constitute storage device, write first data into the first of described storage device logically Location.
Computer system the most according to claim 1, also includes:
It is one or more that metadata is stored in the plurality of driver by described expansion card, and described metadata indicates institute State the first physical address, described second physical address has incidence relation.
Computer system the most according to claim 1, wherein said expansion card is by selecting the plurality of driving The first driver in device generates the first physical address, described first physical address for described first logical address Indicate the storage position in described first driver.
Computer system the most according to claim 3, wherein safeguards for each driver in described expansion card and writes Pointer, the physical address of write pointer instruction write data;Described expansion card is additionally based upon the first selected driver Write pointer generate described first physical address, and make described first driver write pointer be incremented by.
Computer system the most according to claim 1, the first data are write by wherein said expansion card in response to receiving Enter the request of the first logical address for described storage device, distribute memory element group so that a driving Continuous print write operation on device can be carried out on the continuous print physical address of this driver, described memory element group bag Including multiple memory element, each in the plurality of memory element is positioned at one of the plurality of driver.
Computer system the most according to claim 5, wherein said expansion card is that memory element group safeguards write pointer, Write pointer indicates a memory element in described memory element group, and described expansion card is based on the storage list distributed The write pointer of tuple generates described first physical address, and makes the write pointer of distributed memory element group indicate institute State another memory element in memory element group.
Computer system the most according to claim 5, wherein in response to distribution memory element group, described expansion card Inquire about the state of multiple drivers at each memory element place of described memory element group, and based on described state Select a memory element to come for described first logical address from described memory element group and generate first physically Location, the memory element selected by described first physical address instruction.
Computer system the most according to claim 1, if the most described expansion card has received for generating The data of N number of page of verification data, it is determined that generate verification data.
9. according to the computer system described in claim 1 or 8, if the most described expansion card not yet receives for giving birth to The data of N number of page of one-tenth verification data, the most described expansion card is filled tentation data and is formed for generating verification The data of N number of page of data, and determine generation verification data.
10. according to the computer system described in claim 1 or 8, if the most described expansion card not yet receive for Generating the data of N number of page that verifies data, the most described expansion card initiates for the plurality of driver Or multiple garbage collection operation forms the data for generating N number of page that verifies data, and determine generation Verification data.
CN201310076773.3A 2013-03-11 2013-03-11 There is the computer of multiple solid-state disk Active CN103218270B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310076773.3A CN103218270B (en) 2013-03-11 2013-03-11 There is the computer of multiple solid-state disk
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
CN201310076773.3A CN103218270B (en) 2013-03-11 2013-03-11 There is the computer of multiple solid-state disk

Publications (2)

Publication Number Publication Date
CN103218270A CN103218270A (en) 2013-07-24
CN103218270B true CN103218270B (en) 2016-08-17

Family

ID=48816091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310076773.3A Active CN103218270B (en) 2013-03-11 2013-03-11 There is the computer of multiple solid-state disk

Country Status (1)

Country Link
CN (1) CN103218270B (en)

Families Citing this family (9)

* 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
US10191841B2 (en) 2015-07-06 2019-01-29 Shannon Systems Ltd. Host device, access system, and access method
CN106339179B (en) * 2015-07-06 2020-11-17 上海宝存信息科技有限公司 Host device, access system, and access method
DE102015113414B4 (en) * 2015-08-14 2023-02-23 Infineon Technologies Ag Error correction using WOM codes
CN107797760B (en) * 2016-09-05 2021-06-11 北京忆恒创源科技有限公司 Method and device for accessing cache information and solid-state drive
CN113867650A (en) * 2016-12-23 2021-12-31 北京忆芯科技有限公司 IO command processing method and solid-state storage device
SG11201802566PA (en) 2016-12-29 2018-08-30 Huawei Tech Co Ltd Storage system and solid state disk
CN109101185B (en) * 2017-06-20 2023-08-11 北京忆恒创源科技股份有限公司 Solid-state storage device and write command and read command processing method thereof
CN109358809B (en) * 2018-09-28 2020-07-24 方一信息科技(上海)有限公司 RAID data storage system and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102656567A (en) * 2009-12-17 2012-09-05 国际商业机器公司 Data management in solid state storage devices
CN203191967U (en) * 2013-03-11 2013-09-11 北京忆恒创源科技有限公司 Computer system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102656567A (en) * 2009-12-17 2012-09-05 国际商业机器公司 Data management in solid state storage devices
CN203191967U (en) * 2013-03-11 2013-09-11 北京忆恒创源科技有限公司 Computer system

Also Published As

Publication number Publication date
CN103218270A (en) 2013-07-24

Similar Documents

Publication Publication Date Title
CN103218270B (en) There is the computer of multiple solid-state disk
CN103176858B (en) Storage device with multiple solid-state discs
CN103150261B (en) Method and device for simultaneously accessing multiple solid-state disks
Ouyang et al. SDF: Software-defined flash for web-scale internet storage systems
Kim et al. Evaluating phase change memory for enterprise storage systems: A study of caching and tiering approaches
Agrawal et al. Design tradeoffs for {SSD} performance
TWI477965B (en) Apparatus including memory system controllers and related methods
TWI463314B (en) Apparatus including memory system controllers and related methods
US8230159B2 (en) System, method, and computer program product for sending logical block address de-allocation status information
CN111164574A (en) Redundant coded stripes based on internal addresses of storage devices
US20130073798A1 (en) Flash memory device and data management method
US8918554B2 (en) Method and apparatus for effectively increasing a command queue length for accessing storage
CN108153482A (en) I/O command processing method and Media Interface Connector controller
CN106873903B (en) Data storage method and device
CN103403667A (en) Data processing method and device
US11126367B2 (en) Storage system and method for determining ecosystem bottlenecks and suggesting improvements
Wei et al. A hardware-software co-design experiments platform for NAND flash based on Zynq
CN108877862B (en) Data organization of page stripes and method and device for writing data into page stripes
CN108153582A (en) I/O command processing method and Media Interface Connector controller
CN203191967U (en) Computer system
CN103645995B (en) Write the method and device of data
Chiueh et al. Software orchestrated flash array
CN103914401B (en) Storage device with multiple processors
CN203191968U (en) Storage equipment with a plurality of solid-state discs
KR102425470B1 (en) Data storage device and operating method thereof

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

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.

CP03 Change of name, title or address