CN107229580A - Sequential stream detection method and apparatus - Google Patents

Sequential stream detection method and apparatus Download PDF

Info

Publication number
CN107229580A
CN107229580A CN201610169011.1A CN201610169011A CN107229580A CN 107229580 A CN107229580 A CN 107229580A CN 201610169011 A CN201610169011 A CN 201610169011A CN 107229580 A CN107229580 A CN 107229580A
Authority
CN
China
Prior art keywords
command
address
addresses
hit
sequential
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610169011.1A
Other languages
Chinese (zh)
Other versions
CN107229580B (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 CN202010641378.5A priority Critical patent/CN111625482B/en
Priority to CN201610169011.1A priority patent/CN107229580B/en
Publication of CN107229580A publication Critical patent/CN107229580A/en
Application granted granted Critical
Publication of CN107229580B publication Critical patent/CN107229580B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The method and apparatus of detection ordering stream is provided.Sequential stream detection method, wherein caching multiple IO addresses;Each with multiple IO addresses for being cached records hit count in association;Including:In response to receiving the first I/O command, if one of multiple IO addresses that the hit of the first I/O command is cached, one of multiple IO addresses hit are replaced with the first address of first I/O command, it is incremented by first hit count associated with first address;If the first hit count meets threshold value, the first I/O command is labeled as to belong to the first sequential flow.

Description

Sequential stream detection method and apparatus
Technical field
The present invention relates to storage system, more particularly, to the I/O command in test access continuation address space.
Background technology
Storage system is used to handle I/O command.I/O command can be sent to storage device (for example, disk, solid State hard disk, USB flash disk, CD etc.), storage server or storage system (such as cloud storage).A plurality of I/O command structure Into one or more data flows.If the address that a plurality of I/O command is accessed is continuous, these I/O commands are constituted Data flow be referred to as sequential flow.
Every I/O command carries or indicated the address (logical address or physical address) for the data to be accessed.Every IO The length for ordering the data to be accessed can be regular length, can also change.When main frame accesses storage device, such as Chunk data may be accessed and split into a plurality of I/O command by the data access side of application program, and be sent to storage device. Can also there are application and/or the multiple operating systems (such as, virtual machine) of multiple access storage devices in main frame, this Cause the I/O command for carrying out a multiple access side to be interleaved, and then cause the access originally to continuation address to become discontinuous.
Referring to Fig. 1, there are multiple applications in main frame, sequential flow A is produced by application A, including accesses continuation address A1, A2, A3 ... An a plurality of I/O command.As an example, sequential flow A can come to large scale video text The duplication of part.Sequential flow B is produced by application B, including accesses the B1 of continuation address, and B2, B3 ... Bn's is a plurality of I/O command.Application in main frame also creates a plurality of I/O command for accessing discontinuous address space (by S, E, D, C It is indicated).In operating system, driver, equipment interface and/or bus, multiple I/O commands be organized as with Originally different order, and being received by storage device.
There is provided address conversion layer in the storage device of such as solid state hard disc, the logical address of I/O command is converted into thing Address is managed, and according to physical address by access storage media.Referring to Fig. 2, storage device is with A1, B1, C, B2 Be received sequentially I/O command, and by these I/O commands order
Storage device is according to the order for receiving I/O command, and the data that I/O command (by taking write order as an example) is accessed are write Enter into storage medium.The storage medium of such as flash memory writes data by unit of page.It can also be used in storage device The data block of preliminary dimension is used as the unit (for example, the set being made up of multiple pages) for writing data.Write data Unit typically has larger size, can accommodate the data that a plurality of I/O command is write.In the example in figure 2, The corresponding data of I/O command A1, B1, C, B2 are written in same data block, and the number in the data block According to from continuous multiple I/O commands.And originally sent in sequential flow multiple I/O commands (such as I/O command A1, A2, A3 ... An, B1, B2, B3 ... Bn) corresponding to data will be dispersed in different data blocks.
The content of the invention
So in some cases, belonging to the data of same sequential flow has same or analogous life cycle, i.e., this A little data can be updated or cancel simultaneously.Referring to Fig. 2, if data flow A has cancelled or has been updated, and data stream B, When C also keeps effective, the partial invalidity of corresponding A 1 in data block, and the other parts of data block are also effective, then Because a variety of causes needs to reclaim the data block when, it is necessary to moved to the data in addition to the data corresponding to A1, This, which can be introduced, writes amplification.Writing amplification causes increased read-write operation, adds overhead, also consumes storage medium Service life.
In the present invention, succession inspection is carried out to data stream, continuous data flow (sequential flow) is extracted, And it is written to the continuous physical space of storage device.
According to the first aspect of the invention there is provided the first sequential stream detection method according to a first aspect of the present invention, Wherein cache multiple IO addresses;Each with multiple IO addresses for being cached records hit count in association;It is described Method includes:In response to receiving the first I/O command, if the first address hit of the first I/O command cached it is multiple One of IO addresses, one of multiple IO addresses hit are replaced with first address, are incremented by and first address The first associated hit count;If the first hit count meets threshold value, the first I/O command is labeled as to belong to first Sequential flow.
There is provided according to a first aspect of the present invention for the first sequential stream detection method according to the first aspect of the invention Second sequential stream detection method, wherein, the multiple IO addresses are the addresses for the multiple I/O commands being most recently received.
There is provided according to the present invention first for the first or second sequential stream detection method according to the first aspect of the invention 3rd sequential stream detection method of aspect, wherein one of multiple addresses of the first address hit caching, including:Described One address is numerically close to one of the multiple IO addresses;First address can be by one of the multiple IO addresses Incrementally obtain;First address is identical with one of the multiple IO addresses;First address is with the multiple IO One of address is overlapped;Or first address is less than threshold value with the distance of one of the multiple address.
There is provided according to the present invention to one of the 3rd sequential stream detection method for first according to the first aspect of the invention 4th sequential stream detection method of first aspect, methods described also includes:Cached if the first IO is miss Multiple IO addresses any one, one of the multiple IO addresses are replaced with first address, and initialize with The hit count value that the IO addresses being replaced are associated.
There is provided according to the present invention for one of first to fourth sequential stream detection method according to the first aspect of the invention 5th sequential stream detection method of first aspect, wherein providing miss counter;Methods described also includes:If described Any one of first I/O command is miss cached multiple IO addresses, is incremented by the miss counter;If institute Miss counter is stated beyond threshold value, is successively decreased with each associated hit count of the multiple address, and reset The miss counter.
There is provided according to the present invention to one of the 5th sequential stream detection method for first according to the first aspect of the invention 6th sequential stream detection method of first aspect, methods described also includes:If the miss institute of the first I/O command Any one of multiple IO addresses of caching, first I/O command is labeled as to belong to stochastic flow.
There is provided according to first party of the present invention for one of the 4th sequential stream detection method according to the first aspect of the invention The 7th sequential stream detection method in face, if wherein times of multiple IO addresses of the miss caching of the first I/O command What one, the minimum IO addresses of hit count in the multiple IO addresses are replaced with first address;Or with institute State the first address and replace IO addresses least recently used in the multiple IO addresses, and initialize first address Hit count.
There is provided according to the present invention to one of the 7th sequential stream detection method for first according to the first aspect of the invention 8th sequential stream detection method of first aspect, if wherein first hit count is unsatisfactory for threshold value, by first I/O command is labeled as belonging to stochastic flow.
There is provided according to the present invention to one of the 8th sequential stream detection method for first according to the first aspect of the invention 9th sequential stream detection method of first aspect, methods described also includes:In response to receiving the second I/O command, if The first IO addresses of the second address hit caching of second I/O command, and first hit count meets threshold value, One of multiple IO addresses for being hit then are replaced with second address, and by second I/O command labeled as belonging to First sequential flow.
There is provided according to the present invention to one of the 8th sequential stream detection method for first according to the first aspect of the invention Tenth sequential stream detection method of first aspect, methods described also includes:In response to receiving the second I/O command, if One of multiple IO addresses in addition to the first IO addresses that second address hit of the second I/O command is cached, One of multiple IO addresses hit are replaced with second address, are incremented by second associated with second address Hit count, one of multiple IO addresses hit are replaced with second address, if second hit count is full Sufficient threshold value, second I/O command is labeled as to belong to the first sequential flow.
There is provided according to the present invention for one of the 9th to the tenth sequential stream detection method according to the first aspect of the invention 11st sequential stream detection method of first aspect, methods described also includes:In response to receiving the 3rd I/O command, such as What really the 3rd address hit of the 3rd I/O command was cached is multiple in addition to first address or second address One of IO addresses, one of multiple IO addresses hit are replaced with the 3rd address, are incremented by and the 3rd address The 3rd associated hit count;If the 3rd hit count meets threshold value, the 3rd I/O command is labeled as to belong to second Sequential flow.
There is provided according to this hair to one of the 11st sequential stream detection method for first according to the first aspect of the invention 12nd sequential stream detection method of bright first aspect, if wherein the first address hit of the first I/O command is cached One of multiple IO addresses, be accordingly incremented by first hit count with the data length of the first I/O command.
There is provided according to this hair to one of the 12nd sequential stream detection method for first according to the first aspect of the invention 13rd sequential stream detection method of bright first aspect, in addition to, it is suitable by first if the first I/O command is write order Sequence stream is written to the storage location that physical address closes on.
There is provided according to this hair to one of the 13rd sequential stream detection method for first according to the first aspect of the invention 14th sequential stream detection method of bright first aspect, in addition to, if the first I/O command is read command, generation is pre-read Order reads data from the position adjacent with first address.
According to the second aspect of the invention there is provided the first sequential stream detection method according to a second aspect of the present invention, Wherein cache multiple IO addresses;Each with multiple IO addresses for being cached records hit count in association;It is described Method includes:In response to receiving the first I/O command, if described first has hit quilt in the multiple IO addresses cached Labeled as the IO addresses for belonging to the first sequential flow, hit IO addresses are replaced with the first address of first address; First I/O command is labeled as to belong to sequential flow.
There is provided according to a second aspect of the present invention for the first sequential stream detection method according to the second aspect of the invention Second sequential stream detection method, in addition to:If first I/O command hit caching multiple IO addresses in not by Labeled as the second address for belonging to the first sequential flow, the second hit address is replaced with first address, be incremented by with The second associated hit count of first address;If the second hit count meets threshold value, by the first I/O command mark It is designated as belonging to sequential flow.
There is provided according to the present invention second for the first or second sequential stream detection method according to the second aspect of the invention 3rd sequential stream detection method of aspect, in addition to:If multiple IO addresses of the first I/O command is miss caching Any one, is incremented by miss counter;If the miss counter exceeds threshold value, successively decrease with the multiple IO The each associated hit count of address;And one of multiple IO addresses cached are replaced with first address.
There is provided according to the present invention second for the first or second sequential stream detection method according to the second aspect of the invention 4th sequential stream detection method of aspect, in addition to:If multiple IO addresses of the first I/O command is miss caching Any one, is incremented by miss counter;If the miss counter exceeds threshold value, successively decrease with the multiple address Each associated hit count;And not to be labeled in multiple IO addresses of first address replacement caching One of IO addresses to belong to sequential flow.
According to the third aspect of the invention we there is provided sequential stream detection system according to a third aspect of the present invention, wherein Cache multiple IO addresses;Each with multiple IO addresses for being cached records hit count in association;The system Including:Hit detection module, in response to receiving the first I/O command, if the first address life of the first I/O command One of middle cached multiple IO addresses, one of multiple IO addresses hit are replaced with first address, are incremented by First hit count associated with first address;And sequential flow mark module, if for the first hit count Threshold value is met, the first I/O command is labeled as to belong to the first sequential flow.
According to the fourth aspect of the invention there is provided sequential stream detection system according to a fourth aspect of the present invention, wherein Cache multiple IO addresses;Each with multiple IO addresses for being cached records hit count in association;The system Including:Hit detection module, in response to receiving the first I/O command, if described first has hit caching It is marked as belonging to the IO addresses of the first sequential flow in multiple IO addresses, is replaced with the first address of first address The IO addresses hit;And sequential flow mark module, for the first I/O command to be labeled as to belong to sequential flow.
According to the fifth aspect of the invention there is provided a kind of computer program for including computer program code, when being carried When entering computer system and performing on the computer systems, the computer program code performs the computer system The sequential stream detection method provided according to a first aspect of the present invention or the sequential flow provided according to a second aspect of the present invention Detection method.
According to the sixth aspect of the invention there is provided a kind of program including program code, when being loaded into storage device simultaneously When performing on a storage device, the meter program code makes the storage device execution provide according to a first aspect of the present invention Sequential stream detection method or the sequential stream detection method that provides according to a second aspect of the present invention.
Brief description of the drawings
When being read together with accompanying drawing, by reference to below to the detailed description of illustrative embodiment, by optimal geography Solution use pattern and its further objects and advantages of the invention and preferred, wherein accompanying drawing include:
Figure 1A shows the schematic diagram of the I/O command stream of main frame in the prior art and equipment room;
Figure 1B shows the schematic diagram for storing I/O command stream on a storage medium in the prior art;
Fig. 2 shows the block diagram of storage device according to embodiments of the present invention;
Fig. 3 shows the schematic diagram of sequential stream detection according to embodiments of the present invention;
Fig. 4 shows the schematic diagram of the buffering plot structure for being used for sequential stream detection according to embodiments of the present invention;
Fig. 5 illustrates the buffering area change during sequential stream detection according to embodiments of the present invention;
Fig. 6 illustrates the buffering area change during the sequential stream detection according to further embodiment of this invention;
Fig. 7 is the flow chart of sequential stream detection method according to embodiments of the present invention;
Fig. 8 is the flow chart of the sequential stream detection method according to further embodiment of this invention;And
Fig. 9 is the block diagram of sequential stream detection system according to embodiments of the present invention.
Embodiment
Referring to Fig. 2, with solid storage device (Solid Storage Device, SSD) as the citing of storage device, Fig. 2 illustrates the block diagram of storage device.Storage device 201 may be coupled to main frame, for providing storage energy for main frame Power.Main frame can be coupled in several ways between storage device 102, and coupled modes include but is not limited to pass through example As SATA, IDE, USB, PCIE, NVMe (NVM Express), SCSI, Ethernet, optical-fibre channel, Cordless communication network etc. connects main frame and storage device 102.Main frame can be being capable of same storage device through the above way The message processing device communicated, for example, personal computer, tablet personal computer, server, portable computer, net Network interchanger, router, cell phone, personal digital assistant etc..Storage device 102 includes interface 103, control Part 104, one or more NVM (nonvolatile storage, Non-Volatile Memory) storage chip 105 And firmware memory 110.Interface 103 can adapt to for example, by SATA, IDE, USB, PCIE, NVMe, The modes such as SCSI, Ethernet, optical-fibre channel and host exchanging data.Control unit 104 be used for control interface 103, Data transfer between NVM storage chips 105 and firmware memory 110, is additionally operable to storage management, main frame and patrols Volume address is to flash memory physical address map, erasure balance, bad block management etc..Can by software, hardware, firmware or its The various ways of combination realize control unit 104.Control unit 104 can be FPGA (Field-programmable Gate array, field programmable gate array), ASIC (Application Specific Integrated Circuit, application Application specific integrated circuit) or its combination form.Control unit 104 can also include processor or controller.Control Part 104 processed is operationally from the loading firmware of firmware memory 110.Firmware memory 110 can be NOR flash memory, ROM, EEPROM etc..Firmware is used to provide electronic equipment bottom function, BIOS, operating system loading etc..
In an embodiment according to the present invention, storage device 201 receives I/O command, and the IO to being received from main frame Order execution sequence stream is detected, to be detected from a plurality of I/O command received and extract sequential flow.In an example In son, control unit 204 performs sequential stream detection according to embodiments of the present invention by loading firmware 210. In another example, execution sequence stream is detected in the main frame that same storage device 201 is coupled, and is being sent to storage Mark indicates whether the I/O command belongs to the label of sequential flow in the I/O command of equipment.
Fig. 3 is sequential stream detection schematic diagram according to embodiments of the present invention.As an example, in such as solid state hard disc Sequential stream detection is implemented to the I/O command received in storage device.From the multiple I/O commands for accessing storage device, Detect that the sequential flow A, sequential flow B and the address of access that access continuation address do not have multiple IO of succession Order (by C, D, E ... S is indicated) (also referred to as stochastic flow).Also, sequential flow A is written to data In block 1, sequential flow B is written in data block 2, stochastic flow is written to data block 3.When A pairs of sequential flow (for example, when sequential flow A correspondence large scale video files when the data life period answered completes and is updated or is invalid When, the video file is deleted), the data in data block 1 are all changed into invalid, and cause in recovered data block 1 When, without the valid data in data block are moved (because valid data are not present in data block 1, or effectively Data are less), write amplification so as to reduce.In addition, the data in sequential flow may also be continuously read.For example, When sequential flow A correspondence large scale video files, correspond to A1, A2, A3 and A4 data very in data block 1 It may be continuously read.Thus for the data block 1 of storage order stream, when responding read operation, it can receive Before follow-up I/O command, follow-up data are pre-read, so as to reduce the response time to subsequent reads I/O command.
For detection ordering stream, referring to Fig. 4, the buffering for sequential stream detection according to embodiments of the present invention is illustrated Plot structure.Multiple I/O commands address to be accessed is cached in memory.In the example in fig. 4, I/O command is carried Logical block address (LBA).In other examples, I/O command can carry the address of other forms (for example, empty Intend address), as long as having succession between the element of the address space of I/O command.
Referring to Fig. 4, buffering area includes multiple (6) entries, and each entry includes logical block address (LBA) With count value, logical block address is accordingly stored with count value.In the example in fig. 4, the logic of buffer entries Last for one or more LBA addresses that block address is accessed from I/O command.In other examples, buffering area Bar destination address can record the address realm of I/O command, or I/O command first address and length.Buffer entries Count value indicate the number of times that the address of the buffer entries is hit.
Referring to Fig. 4, order flow label (SS1, SS2) is additionally provided.Order flow label can have multiple, each Order flow label indicates a sequential flow.In Fig. 4, order flow label SS1 indicates the IO for accessing LBA3 Order belongs to sequential flow, and the I/O command that order flow label SS2 indicates access LBA5 belongs to another sequential flow.
Fig. 5 illustrates the buffering area change during sequential stream detection according to embodiments of the present invention.Inlet flow 550 Including multiple I/O commands, in chronological sequence order access respectively logical block address be 1,52,2,21,100,3, 70 and 4 storage location.After two I/O commands that logical block address is 1 and 52 are received, buffering area A exhibitions The content of buffering area is shown.The I/O command of logical block address 1 is accessed in response to receiving, by buffer entries 512 Logical block address 1 is filled, and this is the filling first of the buffer entries 512, accordingly by the beginning of corresponding count value Beginning turns to 0.Similarly, the I/O command of logical block address 52 is accessed in response to next receiving, by buffer entries Logical block address 52 is filled in 514, and corresponding count value is initialized as 0.
Buffering area B show receives the buffer contents after the I/O command that logical block address is 2 and 21.In response to The I/O command that logical block address is 2 is received, checks whether the I/O command has hit buffer entries.Due to buffering area The address field of entry 512 is 1, and logical block address " 2 " with the content of the address field of buffering area 512 One address, thus the I/O command has hit buffer entries 512.As response, by the logical block of the I/O command Location " 2 " filling buffer entries 512, and by the count (obtaining 1) of buffer entries 512.In response to The I/O command that logical block address is 21 is received, will because the I/O command does not hit any one buffer entries The I/O command inserts the empty entry 516 of buffering area.
Buffering area C illustrates the buffer contents received after the I/O command that logical block address is 100 and 3.In response to The I/O command that logical block address is 100 is received, checks whether the I/O command has hit buffer entries.Due to logic Block address is 100 any one miss buffer entries of I/O command, is distributed in the buffer newly for the I/O command Entry.In the example of fig. 5, there is empty entry 518 in buffering area, logical block address is ordered for 100 IO The empty entry 518 of buffering area is inserted in order.Next the I/O command that logical block address is 3 is received.Logical block address is 3 I/O command hit buffering area 512, by the logical block address of the I/O command " 3 " filling entry 512 addresses Field, and make the count of entry 512.In the example of fig. 5, the count value of entry 512 meets order The specified requirements (for example, count value is not less than 2) of detection is flowed, then is recognized logical block address for 3 I/O command To belong to sequential flow, and order flow label SS 1 is set to point to buffer entries 512.
Buffering area D illustrates the buffer contents received after the I/O command that logical block address is 70 and 4.In response to The I/O command that logical block address is 70 is received, checks whether the I/O command has hit buffer entries.Due to logic Block address is 70 any one miss buffer entries of I/O command, is distributed in the buffer newly for the I/O command Entry.In the example of fig. 5, there is empty entry 519 in buffering area, by the I/O command that logical block address is 70 Insert the empty entry 51 of buffering area.One of ordinary skill in the art, which will realize, to use other modes will be miss The information of the I/O command of buffer entries inserts buffer entries.For example, selection multiple buffering area entry (512,514, 516 and 518) the minimum entry of count value, or renewal time last time is away from current time buffering area the most remote Entry.In another example, because buffer entries 512 are identified as indicating sequential flow, for miss When the I/O command of what entry selects IO entries to be replaced, do not consider to indicate the buffering area 512 of sequential flow, and from Multiple buffering area entry selects entry in (514,516,518,519 and 520) according to selection strategy.For example, from Renewal time last time is away from the minimum entry of selection count value in current time multiple buffering area entry at most;Or from meter Entry of selection renewal time last time away from current time at most in the minimum multiple buffering area entry of numerical value.
Next the I/O command that logical block address is 4 is received.Logical block address has hit buffering for 4 I/O command Area 512, by the logical block address of the I/O command " 3 " address field of filling entry 512, and make entry 512 Count.Order flow label SS1 still points to entry 512, and by I/O command mark that logical block address is 4 It is designated as belonging to sequential flow.
In the example of fig. 5, the I/O command in inlet flow 550 is write order.And sequential flow will be identified to belong to The data to be written of multiple write orders be written to the storage location that physical address on storage medium closes on, for example, write-in To identical memory block, or the continuous memory page of physical address or memory block.
In another example, sequential stream detection is carried out respectively to the read command in inlet flow and write order.It will constitute The write order of sequential flow is written to the storage location closed on, and for constituting the read command of sequential flow, generates pre- read command To read data from the position adjacent with the address that current read command is accessed.The data that pre- read command is read, which are storable in, deposits (for example, buffer register of nand flash memory) in the caching of storage media, the caching of storage device or main frame In internal memory.
Fig. 6 illustrates the buffering area change during the sequential stream detection according to further embodiment of this invention.Inlet flow 650 be multiple I/O commands after inlet flow 550, in chronological sequence order respectively access logical block address be 5, 47th, the storage location of 6-10,53,19,67,54 and 13, as an example, these I/O commands are to write life Order, one of them order to logical block address for 6-10 storage location write data so that I/O command write or The data of reading have different length.
After two I/O commands that logical block address is 5 and 47 are received, buffering area E illustrates the content of buffering area. The I/O command of access logical block address 5 has hit buffer entries 512, and (logical block address 5 is in buffer entries 512 Address field " after 3 " (referring to Fig. 5 buffering area D)), logic will be updated in buffer entries 512 Block address 5, and make corresponding count.The IO lives of logical block address 47 are accessed in response to next receiving Order, records logical block address 47, and initialize corresponding count value in the Empty Entry 520 of buffering area.
Buffering area F show receives the buffer contents after the I/O command that logical block address is 6-10 and 53-54. In response to receiving the I/O command that logical block address is 6-10, the I/O command has hit the (logic of buffer entries 512 Block address 6-10 first address " 6 " in the address of buffer entries 512 " 5 " afterwards), by the I/O command most Logical block address afterwards " 10 " entry 512 is filled into, and because the I/O command occupies 5 logical block address, Make the count 5 of entry 512.In response to receiving the I/O command that logical block address is 53-54, due to the IO Buffer entries 514 are hit, by logical block address " 54 " entry 514 is inserted, and makes the meter of entry 514 Numerical value is incremented to 2.The count value of entry 514 meets the specified requirements of sequential stream detection (for example, count value is not small In 2), then logical block address is identified to belong to sequential flow for 54 I/O command, and refer to order flow label SS2 To buffer entries 514.
In another example, synchronization only one sequential flow of mark.Even if thus the count value of entry 514 expires Foot labeled as sequential flow condition (for example, not less than 2), due to having existed for sequential flow SS1, thus not The I/O command of hit entries 514 is labeled as sequential flow.If entry 514 is hit by follow-up a plurality of I/O command so that The count value of entry 514 has exceeded the count value of entry 512 (for example, as the maximum bar of multiple entry count values Mesh), the I/O command of hit entries 514 can be labeled as belonging to sequential flow.
Buffering area G illustrates the buffer contents received after the I/O command that logical block address is 19 and 67.Response In receiving the I/O command that logical block address is 19, the I/O command is miss any buffer entries.Select buffering area One of entry is used to accommodate the I/O command that logical block address is 19.Because entry 512 and entry 514 are indicated as category In sequential flow, the I/O command of miss any entry is accommodated without entry 512 and entry 514 as far as possible.In entry In 516-520, one is selected to accommodate new I/O command preferably from the less entry 516-520 of count value.For example, Selection renewal time, entry 516 accommodated the I/O command that logical block address is 19, and count initialized value earlier. In response to receiving the I/O command that logical block address is 67, the I/O command is miss any buffer entries.Selection meter Numerical value is smaller (in Fig. 6 buffering area G be 0), and renewal time earlier entry 518 come with accommodating logical block Location is 67 I/O command, and count initialized value.
Buffering area H show receives the buffer contents after the I/O command that logical block address is 54 and 13.Response In receiving the I/O command that logical block address is 54, the I/O command hit entries 514 are (by patrolling for the I/O command of reception Collect block address identical with the address in entry, be also regarded as hit), and make the count of entry 514.As another One example, record start address and end address (or initial address and length) in the entry, if receive The address recorded in the logical block address and entry of I/O command, which exists, to be overlapped, and is also considered as hit.
And in response to receiving the I/O command that logical block address is 13, any one entry that the I/O command is miss, choosing Entry 519 is selected to accommodate the I/O command that logical block address is 13.
In further example, the miss number of times of count buffer area entry is gone back.For example receiving logical block address After 13 I/O command, buffer entries are accumulative had 9 times it is miss, reached threshold value, then by buffering area The count value of all entries is successively decreased.As shown in the buffering area H in Fig. 6, the count value of entry 512 is decremented to 8, And the count value of entry 514 is decremented to 2, the count value of other entries has been minimum value, is kept constant.
In further example, the I/O command for being not identified as belonging to sequential flow is designated stochastic flow, so as to All I/O commands for being designated stochastic flow are handled in identical or different mode.
Fig. 7 is the flow chart of sequential stream detection method according to embodiments of the present invention.Embodiments in accordance with the present invention, Implement sequential stream detection in storage device.Storage device receives I/O command (710) from main frame or other storage devices. I/O command includes logical block address, indicates the storage location for the data to be accessed.I/O command can be read command, Write order or other kinds of order.The I/O command data to be accessed can have different length, correspondingly, IO lives The logical address of order can be a scope.Below by taking write order as an example, the method for description order stream detection.
Referring to Fig. 4, multiple entries are cached in the buffering area of such as memory, each entry is with including logical block Location and corresponding count value.In response to receiving I/O command, check whether the logical block address of I/O command has hit quilt The entry (720) of buffering.As an example, referring to Fig. 5, the content of current buffer is as shown in buffering area B.Connect Receive the I/O command that logical block address is 3.In buffering area B, the address of entry 512 is " 2 ", logical block Entry 512 has been hit in location for 3 I/O command, then the logical block address " 3 " of I/O command is replaced to the bar being hit The address field of mesh 512, and make corresponding count (730).Next, it is judged that whether count value meets Threshold value (740).As an example, it is " 3 " by the threshold definitions of count value, the current count value of entry 512 is met (for example, being not less than) threshold value, then be labeled as belonging to sequential flow (750) by the logical block address for 3 I/O command.
In further example, the I/O command (710) for accessing that logical block address is 70 is received.Logical block Location is that 70 I/O command does not hit the buffered address in any entry, then, one of selection entry is used to hold Receive the I/O command.Referring to Fig. 5 buffering area D, selection entry 519 accommodates the logical block address and ordered for 70 IO Order, and the count value of entry 519 is initialized.
In one example, at any time, at most there is a sequential flow.Even if there is the count value of multiple entries Threshold value is met, also only by an entry labeled as sequential flow is belonged to, such as by the maximum corresponding IO of entry of count value Command Flags are to belong to sequential flow.In another example, while there may be m sequential flow (m>1), will The corresponding I/O command of m entry that count value meets threshold value is labeled as belonging to sequential flow.For sequential flow provide mark with Distinguish sequential flow, such as sequential flow SS1 and sequential flow SS2.Sequential flow has life cycle, in life cycle, and one As to hit the I/O command distribution identical order flow label of same entry.
Relation between a variety of addresses can be considered as hit, for example, the address of I/O command is numerically close in entry Address, the address of I/O command can incrementally obtain by the address in entry, the address in the address and entry of I/O command The distance of identical or I/O command address and the address in entry is less than threshold value.Furthermore, address is indicated in I/O command Scope, and the initial address of the address realm of I/O command is numerically close to the address in entry, can be in entry Address is incrementally obtained, or contains the address in entry.In still another example, recording address model in entry Enclose, and the address realm of I/O command is close to the lower bound of the address realm in entry, or I/O command address realm with Address realm in entry overlaps mutually.
According to another embodiment of the invention, storage device includes label from the I/O command that main frame is received. As an example, label indicate the main frame for sending the I/O command, virtual machine, using or expressed the I/O command category In sequential flow SS1.So as to the tag recognition sequential flow in storage device in I/O command.In response to receiving IO Order, if there is the label for indicating sequential flow SS1 in I/O command, with the entry 512 associated with sequential flow SS1 (referring to Fig. 5 buffering area C) accommodates the I/O command, including is replaced with the address of the I/O command in entry 512 Address, and make the count of entry 512.If there is label T3 in I/O command (does not express I/O command category In sequential flow), and the entry (referring to Fig. 5 buffering area D) associated with label T3 is not present in the buffer, Selection one entry (for example, entry 520 in entry 514-520) accommodates the I/O command, and with entry 520 Label T3 is recorded in association.Also, when being received again by the I/O command for carrying label T3, even if the I/O command Miss entry 520, also accommodates the I/O command with entry 520, so that the I/O command phase region with carrying other labels Point.In another example, if label is not present in the I/O command that storage device is received, order is not carried out to it Stream detection.In another example, main frame uses identical order stream label, or main frame and storage with storage device Equipment would know that used order stream label each other.
Fig. 8 is the flow chart of the sequential stream detection method according to further embodiment of this invention.Storage device from main frame or Other storage devices receive I/O command (810).Referring back to Fig. 6, the content of current buffer is by buffering area E institutes Show.Receive the I/O command that logical block address is 6-10.In buffering area E, the address recorded in entry 512 is " 5 ", The address recorded in the address hit entry 512 of the I/O command, and entry 512 has been marked as belonging to sequential flow (820), thus by logical block address it is labeled as belonging to sequential flow (830) for 6-10 I/O command.Alternatively, more The address recorded in new entry 512 is " 10 " (Fig. 6 buffering area F), and updates the count value of entry 512. In another example, the I/O command (810) (Fig. 6 buffering area E) that logical block address is 53-54 is received. The I/O command is miss to be marked as belonging to the entry 512 (820) of sequential flow, and the address recorded in entry 514 For " 52 ", the entry is hit (840).Replaced and ordered as the address of 53-54 I/O command using logical block address In entry 514 address, and by the count (850) of entry 514.Next, it is judged that be updated Whether entry 514 meets preparatory condition.As an example, the count value of entry 514 is 2, meets preparatory condition, will Logical block address is labeled as belonging to sequential flow (870) for 53-54 I/O command.In one example, existed The sequential flow (I/O commands of correspondence hit entries 512) identified by SS1, distributes new order traffic identifier SS2, Logical block address is labeled as belonging to sequential flow SS2 for 53-54 I/O command.
In still another example, I/O command (810) (Fig. 6 buffering that logical block address is 19 is received Area F).The I/O command is miss to be marked as belonging to the entry 512 of sequential flow, 514 (820), also miss Other entries (840) in buffering area, so that by miss count (880).Miss count value is used for Monitor the life cycle of sequential flow so that the long-term sequential flow for not occurring new I/O command can be taken by new sequential flow Generation.Judge whether miss count value exceedes threshold value (890).As an example, current miss count value is 7, No more than threshold value (890), so that miss count value keeps constant, and with the logical block address 19 of the I/O command One of the entry of caching (897) are replaced, as an example, the I/O command are accommodated by least recently used entry 519.
If non-order count value exceedes threshold value (890), as an example, by the count value of all entries in buffering area Successively decrease (895) (referring to Fig. 6 buffering area H), and resets miss count value.So as to when the life of sequential flow End cycle, when the I/O command received is no longer belong to any sequential flow, buffering area can frequently occur it is miss, and The count value of each entry is decremented to the condition of being unsatisfactory for, and cause entry 512,514 to be no longer marked as belonging to order Stream.
Above by taking write order as an example, sequential stream detection method according to embodiments of the present invention is described.It can use similar The read command that receives of method detection present in sequential flow., can be based on current in response to the read command of appearance order The address of read command, pre-reads the data of subsequent address.The data pre-read can be buffered, and low latency respond to it is follow-up Read command.
Further, to the I/O command received, differentiation is the type (read command or write order) of I/O command, And sequential stream detection is carried out respectively for different types of I/O command.And be different types of order, provide respectively The resources such as special buffering area, order flow identifier, miss counter.
Fig. 9 is the block diagram of sequential stream detection system according to embodiments of the present invention.To implement sequential stream detection, many The address of the I/O command received in the recent period, and the address phase in each entry also with I/O command are cached in individual entry Associatedly record hit count.Sequential stream detection system according to embodiments of the present invention includes hit detection module 910 With sequential flow mark module 920.Hit detection module 910 is used in response to receiving I/O command, if the ground of I/O command Location, which has been hit, is marked as belonging to the IO addresses of sequential flow in multiple IO addresses of caching, with being hit of being cached Replace the address of I/O command in address.Sequential flow mark module 920 is used to be labeled as I/O command to belong to sequential flow.
The embodiment of the present invention also provides a kind of program for including program code, when being loaded into CPU and held in CPU During row, program makes CPU perform one of method according to embodiments of the present invention provided above.
The embodiment of the present invention also provides a kind of program including program code, when being loaded into storage device and set in storage During standby upper execution, described program makes the computing device of storage device method according to embodiments of the present invention provided above One of.
It should be understood that the combination of the frame of each frame and block diagram and flow chart of block diagram and flow chart can be respectively by wrapping The various devices of computer program instructions are included to implement.These computer program instructions can be loaded into all-purpose computer, To produce machine on special-purpose computer or other programmable data control devices, so that in computer or other programmable numbers The device for realizing the function of being specified in one or more flow chart box is created according to the instruction performed on control device.
These computer program instructions, which can also be stored in, can guide computer or other programmable data control devices Computer-readable memory in so as to working in a specific way, so as to using being stored in computer-readable storage Instruct to manufacture including the computer-readable finger for realizing specified function in one or more flow chart box in device The product of order.Computer program instructions can also be loaded on computer or other programmable data control devices to cause A series of operation operation is performed on computer or other programmable data control devices, so as to produce computer realization Process, and then the instruction performed on computer or other programmable data control devices provide be used for realize one Or the operation of function specified by multiple flow chart box.
Thus, the frame of block diagram and flow chart supports the combination, specified for performing of the device for performing specified function The combination of the operation of function and for the combination for the program instruction means for performing specified function.It should also be understood that block diagram and The combination of each frame and block diagram of flow chart and the frame of flow chart can by perform specify function or operation, based on hard The dedicated computer system of part is realized, or is realized by the combination of specialized hardware and computer instruction.
Although the example of present invention reference is described, it is intended merely to the purpose explained rather than the limit to the present invention System, the change to embodiment, increase and/or deletion can be made without departing from the scope of the present invention.
The field that teaching involved by these embodiments, presenting from the description above and in associated accompanying drawing benefits In technical staff will be recognized that many modifications of the invention recorded here and other embodiment.Therefore, it should manage Solution, the invention is not restricted to disclosed embodiment, it is intended to include modification and other embodiment in appended right In the range of claim.Although employing specific term herein, only make on general significance and describing significance Used with them and not for the purpose of limitation.

Claims (12)

1. sequential stream detection method, wherein caching multiple IO addresses;With the multiple IO addresses cached Each record hit count in association;Methods described includes:
In response to receiving the first I/O command, if multiple IO addresses that the hit of the first I/O command is cached One of, one of multiple IO addresses hit are replaced with the first address of first I/O command, passed Increase first hit count associated with first address;
If the first hit count meets threshold value, the first I/O command is labeled as to belong to the first sequential flow.
2. sequential stream detection method according to claim 2, wherein
One of multiple addresses of first address hit caching, including:
First address is numerically close to one of the multiple IO addresses;
First address can incrementally be obtained by one of the multiple IO addresses;
First address is identical with one of the multiple IO addresses;
First address is overlapping with one of the multiple IO addresses;Or
First address is less than threshold value with the distance of one of the multiple address.
3. the sequential stream detection method according to one of claim 1-2, methods described also includes:
If any one of miss the cached multiple IO addresses of the first IO, with described One of the multiple IO addresses are replaced in one address, and initialize associated with the IO addresses being replaced Hit count value.
4. the sequential stream detection method according to one of claim 1-3, wherein providing miss meter Number device;Methods described also includes:
If any one of miss the cached multiple IO addresses of the first I/O command, it is incremented by institute State miss counter;
If the miss counter exceeds threshold value, successively decrease with each associated of the multiple address Hit count.
5. the sequential stream detection method according to one of claim 1-4, methods described also includes:
In response to receiving the second I/O command, if the first IO of the second I/O command hit caching Location, and first hit count meets threshold value, then is replaced with the second address of second I/O command One of multiple IO addresses hit, and second I/O command is labeled as belonging to first sequentially Stream.
6. the sequential stream detection method according to one of claim 1-5, methods described also includes:
In response to receiving the second I/O command, if what the second address hit of the second I/O command was cached One of multiple IO addresses in addition to the first IO addresses, are replaced with second address and are hit One of multiple IO addresses, be incremented by second hit count associated with second address, with described One of multiple IO addresses that the replacement of second address is hit, if second hit count meets threshold value, Second I/O command is labeled as to belong to the first sequential flow.
7. the sequential stream detection method according to one of claim 1-6, wherein
If one of multiple IO addresses that the first address hit of the first I/O command is cached, with first The data length of I/O command is accordingly incremented by first hit count.
8. sequential stream detection method, wherein caching multiple IO addresses;With the multiple IO addresses cached Each record hit count in association;Methods described includes:
In response to receiving the first I/O command, if described first has hit multiple IO addresses of caching In be marked as belonging to the IO addresses of the first sequential flow;
First I/O command is labeled as to belong to sequential flow.
9. sequential stream detection method according to claim 8, in addition to:
If first I/O command has hit in multiple IO addresses of caching and has been not labeled as belonging to first Second address of sequential flow, hit the second address is replaced with first address, be incremented by with it is described The second associated hit count of first address;
If the second hit count meets threshold value, the first I/O command is labeled as to belong to sequential flow.
10. the sequential stream detection method according to one of claim 8-9, in addition to:
If any one of multiple IO addresses of the first I/O command is miss caching, it is incremented by miss Counter;
If the miss counter exceeds threshold value, successively decrease with each associated of the multiple address Hit count;And
Replaced with first address and be not labeled as belonging to sequential flow in multiple IO addresses of caching One of IO addresses.
11. sequential stream detection system, wherein caching multiple IO addresses;With multiple IO for being cached The each of location records hit count in association;The system includes:
Hit detection module, in response to receiving the first I/O command, if the of the first I/O command One of multiple IO addresses that one address hit is cached, with first address replace hit it is multiple One of IO addresses, are incremented by first hit count associated with first address;And
Sequential flow mark module, if meeting threshold value for the first hit count, the first I/O command is marked To belong to the first sequential flow.
12. sequential stream detection system, wherein caching multiple IO addresses;With multiple IO for being cached The each of location records hit count in association;The system includes:
Hit detection module, in response to receiving the first I/O command, if described first hits It is marked as belonging to the IO addresses of the first sequential flow in multiple IO addresses of caching, with first ground Replace hit IO addresses in first address of location;And
Sequential flow mark module, for being labeled as the first I/O command to belong to sequential flow.
CN201610169011.1A 2016-03-23 2016-03-23 Sequential flow detection method and device Active CN107229580B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010641378.5A CN111625482B (en) 2016-03-23 2016-03-23 Sequential flow detection method and device
CN201610169011.1A CN107229580B (en) 2016-03-23 2016-03-23 Sequential flow detection method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610169011.1A CN107229580B (en) 2016-03-23 2016-03-23 Sequential flow detection method and device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010641378.5A Division CN111625482B (en) 2016-03-23 2016-03-23 Sequential flow detection method and device

Publications (2)

Publication Number Publication Date
CN107229580A true CN107229580A (en) 2017-10-03
CN107229580B CN107229580B (en) 2020-08-11

Family

ID=59932194

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610169011.1A Active CN107229580B (en) 2016-03-23 2016-03-23 Sequential flow detection method and device
CN202010641378.5A Active CN111625482B (en) 2016-03-23 2016-03-23 Sequential flow detection method and device

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202010641378.5A Active CN111625482B (en) 2016-03-23 2016-03-23 Sequential flow detection method and device

Country Status (1)

Country Link
CN (2) CN107229580B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110389709A (en) * 2018-04-19 2019-10-29 北京忆恒创源科技有限公司 Sequential stream detection and data pre-head
CN110580128A (en) * 2018-06-11 2019-12-17 北京忆恒创源科技有限公司 Directing data pre-reads using cache feedback information
CN113194118A (en) * 2021-03-29 2021-07-30 新华三大数据技术有限公司 Sequential flow identification method and device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117032595B (en) * 2023-10-09 2024-01-23 北京忆恒创源科技股份有限公司 Sequential flow detection method and storage device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853218A (en) * 2010-05-12 2010-10-06 中兴通讯股份有限公司 Method and system for reading redundant array of inexpensive disks (RAID)
CN101887398A (en) * 2010-06-25 2010-11-17 浪潮(北京)电子信息产业有限公司 Method and system for dynamically enhancing input/output (I/O) throughput of server
US20110167229A1 (en) * 2009-12-16 2011-07-07 The Johns Hopkins University Balanced data-intensive computing
CN102298556A (en) * 2011-08-26 2011-12-28 成都市华为赛门铁克科技有限公司 Data stream recognition method and device
CN103927136A (en) * 2014-04-21 2014-07-16 华为技术有限公司 Identification method and device for input and output IO types
TW201519086A (en) * 2013-11-07 2015-05-16 Hon Hai Prec Ind Co Ltd System and method of sequential IO mechanism detection

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0769868B2 (en) * 1986-09-25 1995-07-31 松下電器産業株式会社 High-speed address translator
US5410653A (en) * 1992-06-16 1995-04-25 International Business Machines Corporation Asynchronous read-ahead disk caching using multiple disk I/O processes and dynamically variable prefetch length
US6427184B1 (en) * 1997-06-03 2002-07-30 Nec Corporation Disk drive with prefetch and writeback algorithm for sequential and nearly sequential input/output streams
JP3149856B2 (en) * 1998-08-31 2001-03-26 日本電気株式会社 Magnetic disk controller
US6779053B2 (en) * 2001-12-21 2004-08-17 Intel Corporation Sequential data transfer detection
CN101539842A (en) * 2009-04-27 2009-09-23 杭州华三通信技术有限公司 Data wiring method of disk array system and disk array system
US20120110239A1 (en) * 2010-10-27 2012-05-03 Seagate Technology Llc Causing Related Data to be Written Together to Non-Volatile, Solid State Memory
CN102023931B (en) * 2010-12-17 2015-02-04 曙光信息产业(北京)有限公司 Self-adaption cache pre-fetching method
EP2816466B1 (en) * 2012-02-14 2019-01-16 Renesas Electronics Corporation Data processing device
TWI454913B (en) * 2012-06-26 2014-10-01 Phison Electronics Corp Data writing method, memory controller and memory storage device
CN104765575B (en) * 2015-04-23 2017-09-15 成都博元时代软件有限公司 information storage processing method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110167229A1 (en) * 2009-12-16 2011-07-07 The Johns Hopkins University Balanced data-intensive computing
CN101853218A (en) * 2010-05-12 2010-10-06 中兴通讯股份有限公司 Method and system for reading redundant array of inexpensive disks (RAID)
CN101887398A (en) * 2010-06-25 2010-11-17 浪潮(北京)电子信息产业有限公司 Method and system for dynamically enhancing input/output (I/O) throughput of server
CN102298556A (en) * 2011-08-26 2011-12-28 成都市华为赛门铁克科技有限公司 Data stream recognition method and device
TW201519086A (en) * 2013-11-07 2015-05-16 Hon Hai Prec Ind Co Ltd System and method of sequential IO mechanism detection
CN103927136A (en) * 2014-04-21 2014-07-16 华为技术有限公司 Identification method and device for input and output IO types

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110389709A (en) * 2018-04-19 2019-10-29 北京忆恒创源科技有限公司 Sequential stream detection and data pre-head
CN110580128A (en) * 2018-06-11 2019-12-17 北京忆恒创源科技有限公司 Directing data pre-reads using cache feedback information
CN113194118A (en) * 2021-03-29 2021-07-30 新华三大数据技术有限公司 Sequential flow identification method and device
CN113194118B (en) * 2021-03-29 2022-05-27 新华三大数据技术有限公司 Sequential flow identification method and device

Also Published As

Publication number Publication date
CN111625482B (en) 2022-02-01
CN111625482A (en) 2020-09-04
CN107229580B (en) 2020-08-11

Similar Documents

Publication Publication Date Title
CN104731717B (en) Storage arrangement and storage management method
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
KR102584018B1 (en) Apparatus, system and method for caching compressed data background
CN106708751A (en) Storage device including multi-partitions for multimode operations, and operation method thereof
CN106708424A (en) Apparatus and method for performing selective underlying exposure mapping on user data
TWI423022B (en) Memory management method, memory controller and memory storage apparatus
CN106448737A (en) Flash memory data reading method and device and solid disk drive
CN104503703B (en) The treating method and apparatus of caching
US9037814B2 (en) Flash memory management method and flash memory controller and storage system using the same
CN106708423A (en) Multimode storage management system
US8037236B2 (en) Flash memory writing method and storage system and controller using the same
CN109558334B (en) Garbage data recovery method and solid-state storage device
CN107229580A (en) Sequential stream detection method and apparatus
CN109164976A (en) Optimize storage device performance using write buffer
TWI556103B (en) Memory apparatus and data accessing method thereof
CN110515550B (en) Method and device for separating cold data and hot data of SATA solid state disk
CN109426436A (en) Rubbish recovering method and device based on variable length bulk
US9798470B2 (en) Memory system for storing and processing translation information
CN110968527B (en) FTL provided caching
JP6100927B2 (en) Information processing device
CN108877862A (en) The data organization of page band and the method and apparatus that data are written to page band
CN106205707A (en) Storage arrangement
CN110968520B (en) Multi-stream storage device based on unified cache architecture
CN108984108A (en) For dispatching the method and solid storage device of I/O command
CN107688435A (en) IO flows adjusting method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

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: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

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

CP01 Change in the name or title of a patent holder