CN103488582B - Write the method and device of cache memory - Google Patents

Write the method and device of cache memory Download PDF

Info

Publication number
CN103488582B
CN103488582B CN201310400488.2A CN201310400488A CN103488582B CN 103488582 B CN103488582 B CN 103488582B CN 201310400488 A CN201310400488 A CN 201310400488A CN 103488582 B CN103488582 B CN 103488582B
Authority
CN
China
Prior art keywords
data block
stored
block
flash card
disk
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
CN201310400488.2A
Other languages
Chinese (zh)
Other versions
CN103488582A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310400488.2A priority Critical patent/CN103488582B/en
Publication of CN103488582A publication Critical patent/CN103488582A/en
Application granted granted Critical
Publication of CN103488582B publication Critical patent/CN103488582B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

The application provides a kind of method for writing cache memory, using flash card(That is FLASH memory)It is used as cache memory, when carrying out data buffer storage, judge the disk logical block address identical old data block with data block to be stored whether is cached with flash card, if there is, then directly data block to be stored is write in the flash card in an asynchronous manner, if there is no, then data block to be stored is write in the free block of the flash card in an asynchronous manner, realize the caching for writing data, and because flash card does not need reserve battery to protect electricity, data will not also lose after power down, therefore energy consumption is low, and, the price of flash card itself is less than the price of dynamic RAM, therefore, the method for writing cache memory that the embodiment of the present application is provided, reduce the cost of implementation of storage system.The embodiment of the present application also provides a kind of device for writing cache memory.

Description

Write the method and device of cache memory
Technical field
The present invention relates to the method and dress of technical field of data storage, more particularly to a kind of reading and writing cache memory Put.
Background technology
Cache memory(cache)It is the buffer between disk storage inside and extraneous interface.Speed buffering is deposited One important function of reservoir be exactly as write cache to write-in data cache, i.e., having data needs store to disk When, it will not write data at once in disk, but first data are temporarily written in cache memory, it is then back to one The signal of individual " data have been written into " just will be considered that data have been written into system, at this moment system, and continue executing with follow-up work, When the data in cache memory reach to a certain degree, then by data from cache memory is written to disk. The use of cache memory, on the one hand reduces actual disk operating, and effectively protection disk is grasped from the read-write repeated Damaged caused by work, the time needed for data write-in on the one hand can also be reduced, so as to improve the write performance of storage system.
However, at present use band reserve battery more(Battery Backup Unit, BBU)Protect the dynamic random storage of electricity Device(Dynamic Random Access Memory, DRAM)As writing cache, and reserve battery is expensive, Neng Gouzhi The limited memory held, therefore, safeguards that dynamic RAM needs to consume more electric energy, thus, stored using dynamic random Device is as writing cache so that the cost of implementation of storage system is higher.
The content of the invention
The embodiments of the invention provide a kind of method for writing cache memory, to reduce being implemented as storage system This.
The first aspect of the present invention provides a kind of method for writing cache memory, and institute's cache memory is flash memory Card, methods described includes:
Judge the disk logical block address identical legacy data with data block to be stored whether is cached with the flash card Block;
If it is, the data block to be stored is write in the flash card in an asynchronous manner;
If it is not, then the data block to be stored is write in the free block in the flash card in an asynchronous manner.
It is described that the data block to be stored is write into the flash memory in the first possible implementation of first aspect The free block of card includes:
Judge to whether there is free block in the flash card;
If it is present the data block to be stored is write in the free block in the flash card in an asynchronous manner;
If it does not exist, then the data block to be stored is added to waiting list, and appearance is empty in the flash card During not busy block, the step for writing the data block to be stored in free block in the flash card in an asynchronous manner is performed.
In second of possible implementation of first aspect, the data block to be stored is being write into the flash memory After free block in card, in addition to:
With preserving the disk logical block address of the data block to be stored and the flash memory logical block of the data block to be stored The corresponding relation of location.
With reference to second of possible implementation of first aspect, in the third possible implementation of first aspect, It is described to judge the disk logical block address identical old data block bag with data block to be stored whether is cached with the flash card Include:
Judge whether the flash memory logical block address corresponding with the disk logical block address of the data block to be stored;
If it is present determining to be cached with the disk logical block address phase with the data block to be stored in the flash card Same old data block;Otherwise, it determines it is described state in flash card it is uncached with having with the disk logical block of the data block to be stored Location identical old data block.
With reference to any one implementation of first aspect or first aspect, in the 4th kind of possible realization of first aspect In mode, in addition to:
The data block to be stored is labeled as dirty data block, and the data block to be stored is added into dirty data block team Row.
With reference to the 4th kind of possible implementation of first aspect, in the 5th kind of possible implementation of first aspect In, in addition to:
Obtain the current idle space proportion of the flash card;
When the ratio of the free space is less than the first predetermined threshold value, the number of dirty data block to be read is determined;
Each dirty data block in the dirty data block queue is subjected to heapsort according to disk logical block address, the is obtained One sequence heap;
Initiate several the first Asynchronous Requests, according to the dirty data block to be read number from described first sequence heap Heap head starts the dirty data block in asynchronous flash memory card reading successively;
The dirty data block read is carried out by heapsort according to the disk logical block address of the dirty data block read, obtained Second sequence heap;
Initiate the second Asynchronous Request, by the dirty data block read since second sequence heap heap head it is asynchronous successively Write in disk, the number of second Asynchronous Request is the number of the dirty data block to be read.
With reference to the 5th kind of possible implementation of first aspect, in the 6th kind of possible implementation of first aspect In, the heapsort is minimum heapsort.
With reference to the 5th kind of possible implementation of first aspect, in the 7th kind of possible implementation of first aspect In, the heapsort is maximum heapsort.
With reference to the 5th kind of possible implementation of first aspect, in the 8th kind of possible implementation of first aspect In, the number of first Asynchronous Request determines that first formula is according to the first formula:
V=N+(M-N)*R
Wherein, V is the number of the first Asynchronous Request;N is the lower limit of default Asynchronous Request number;M is default asynchronous Ask the upper limit of number;R is the current space availability ratio of flash card.
The second aspect of the present invention provides a kind of device for writing cache memory, and the cache memory is sudden strain of a muscle Card is deposited, described device includes:
Judge module, for judging the disk logical block address with data block to be stored whether is cached with the flash card Identical old data block;
First writing module, for being cached with judging the flash card in the judge module and the data to be stored During the disk logical block address identical old data block of block, the data block to be stored is write into the flash card in an asynchronous manner In;
Second writing module, for judging the flash card in the judge module in uncached have and the number to be stored According to block disk logical block address identical old data block when, the data block to be stored is write into the flash memory in an asynchronous manner In the free block of card.
In the first possible implementation of second aspect, second writing module includes:
First judging unit, for judging to whether there is free block in the flash card;
First r/w cell, for when first judging unit is judged to there is free block in the flash card, by institute Data block to be stored is stated to write in an asynchronous manner in the free block in the flash card;
Second r/w cell, will be described during for free block to be not present in judging the flash card in the judging unit Data block to be stored adds waiting list, and when there is free block in the flash card, by the data block to be stored with different Step mode is write in the free block in the flash card.
In second of possible implementation of second aspect, in addition to:
Preserving module, for the free time for writing the data block to be stored in the flash card in second writing module After block, the disk logical block address of the data block to be stored and the flash memory logical block address of the data block to be stored are preserved Corresponding relation.
In the third possible implementation of second aspect, the judge module includes:
Second judging unit, it is corresponding with the disk logical block address of the data block to be stored for judging whether Flash memory logical block address;
3rd judging unit, for the disk for judging to have with the data block to be stored in second judging unit During the corresponding flash memory logical block address of logical block address, determine to be cached with the flash card and the data block to be stored Disk logical block address identical old data block;
4th judging unit, for judging the magnetic with the data block to be stored is not present in second judging unit During the corresponding flash memory logical block address of disk logical block address, determine uncached in the flash card have and the data to be stored The disk logical block address identical old data block of block.
, may in the 4th of second aspect with reference to any one possible implementation of second aspect or second aspect Implementation in, in addition to:
Mark module, for the data block to be stored to be write into flash card in first writing module or the second writing module Afterwards, the data block to be stored is labeled as dirty data block, and the data block to be stored is added into dirty data block queue.
With reference to the 4th kind of possible implementation of second aspect, in the 5th kind of possible implementation of second aspect In, in addition to:
Acquisition module, the current idle space proportion for obtaining the flash card;
Determining module, for when the free space ratio is less than the first predetermined threshold value, determining dirty data to be read The number of block;
First order module, for by each dirty data block in the dirty data block queue according to disk logical block address Heapsort is carried out, the first sequence heap is obtained;
First read through model, for initiating several the first Asynchronous Requests, the number according to the dirty data block to be read Dirty data block since the described first sequence heap heap head successively in asynchronous flash memory card reading;
Second order module, for according to the disk logical block address of dirty data block read by the dirty data read Block carries out heapsort, obtains the second sequence heap;
3rd writing module, for initiating the second Asynchronous Request, the dirty data block read is sorted from described second The heap head of heap starts to be written in disk successively, and the number of second Asynchronous Request is the individual of the dirty data block to be read Number.
The third aspect of the present invention provides a kind of device for writing cache memory, and the cache memory is sudden strain of a muscle Card is deposited, described device includes:
At least one processor, it is configured as:
Judge the disk logical block address identical legacy data with data block to be stored whether is cached with the flash card Block;
If so, then the data block to be stored is write in the flash card in an asynchronous manner;
If it is not, the data block to be stored is write in the free block in the flash card in an asynchronous manner;With And
Memory, it is coupled at least one described processor.
In the first possible implementation of the third aspect, it is configured as the data block write-in to be stored is described At least one processor in the free block of flash card is configured to:
Judge to whether there is free block in the flash card;
If it is present the data block to be stored is write in the free block in the flash card in an asynchronous manner;
If it does not exist, then the data block to be stored is added to waiting list, and appearance is empty in the flash card During not busy block, the step for writing the data block to be stored in free block in the flash card in an asynchronous manner is performed.
In second of possible implementation of the third aspect, at least one described processor is configured to:
After the data block to be stored is write into the free block in the flash card, the data block to be stored is preserved Disk logical block address and the data block to be stored flash memory logical block address corresponding relation.
With reference to second of possible implementation of the third aspect, in the third possible implementation of the third aspect In, it is configured as judging whether being cached with the old number of disk logical block address identical with data block to be stored in the flash card It is configured to according at least one processor of block:
Judge whether the flash memory logical block address corresponding with the disk logical block address of the data block to be stored;
If it is present determining to be cached with the disk logical block address phase with the data block to be stored in the flash card Same old data block;Otherwise, it determines it is described state in flash card it is uncached with having with the disk logical block of the data block to be stored Location identical old data block.
With reference to any one possible implementation of the third aspect or the third aspect, in the 4th kind of possibility of the third aspect Implementation in, at least one described processor is configured to:
After the data block to be stored is write into the flash card, the data block to be stored is labeled as dirty data Block, and the data block to be stored is added into dirty data block queue.
With reference to the 4th kind of possible implementation of the third aspect, in the 5th kind of possible implementation of the third aspect In, at least one described processor is configured to:
Obtain the current idle space proportion of the flash card;
When the ratio of the free space is less than the first predetermined threshold value, the number of dirty data block to be read is determined;
Each dirty data block in the dirty data block queue is subjected to heapsort according to disk logical block address, the is obtained One sequence heap;
Initiate several the first Asynchronous Requests, according to the dirty data block to be read number from described first sequence heap Heap head starts the dirty data block in asynchronous flash memory card reading successively;
The dirty data block read is carried out by heapsort according to the disk logical block address of the dirty data block read, obtained Second sequence heap;
Initiate the second Asynchronous Request, by the dirty data block read since second sequence heap heap head it is asynchronous successively Write in disk, the number of second Asynchronous Request is the number of the dirty data block to be read.
A kind of method for writing cache memory provided in an embodiment of the present invention, using flash card(That is FLASH is stored Device)As cache memory, when carrying out data buffer storage, judge whether be cached with flash card and data block to be stored Disk logical block address identical old data block, if it is present data block to be stored is directly write into institute in an asynchronous manner State in flash card, if it does not exist, then data block to be stored is write in an asynchronous manner in the free block of the flash card, realize The caching of data is write, and because flash card does not need reserve battery to protect electricity, data will not also lose after power down, therefore energy consumption Low, moreover, the price of flash card itself is less than the price of dynamic RAM, therefore, what the embodiment of the present application was provided writes height The method of fast buffer storage, reduces the cost of implementation of storage system.
Brief description of the drawings
Fig. 1 is a kind of flow chart for method for writing cache memory that the embodiment of the present application is provided;
Fig. 2 is the flow chart for another method for writing cache memory that the embodiment of the present application is provided;
Fig. 3 be the embodiment of the present application provide another write cache memory method flow chart;
Fig. 4 for the embodiment of the present application is provided another write cache memory method flow chart;
The process being written to the data in cache memory in disk that Fig. 5 provides for the embodiment of the present application is shown It is intended to;
A kind of structural representation for device for writing cache memory that Fig. 6 provides for the embodiment of the present application;
The structural representation for another device for writing cache memory that Fig. 7 provides for the embodiment of the present application;
Fig. 8 for the embodiment of the present application is provided another write cache memory device structural representation;
Fig. 9 for the embodiment of the present application is provided another write cache memory device structural representation;
Figure 10 for the embodiment of the present application is provided another write cache memory device structural representation;
Figure 11 for the embodiment of the present application is provided another write cache memory device structural representation;
Figure 12 for the embodiment of the present application is provided another write cache memory device structural representation;
The Organization Chart of cache memory in the integrated machine system that Figure 13 provides for the embodiment of the present application;
The Organization Chart for the block storage disk array high speed buffer storage that Figure 14 provides for the embodiment of the present application.
Embodiment
In order that those skilled in the art can further appreciate that the present invention feature and technology contents, refer to below in connection with Detailed description of the invention and accompanying drawing, accompanying drawing only provide with reference to and explanation, not for limiting the present invention.
It refer to Fig. 1, a kind of flow chart for method for writing cache memory that Fig. 1 provides for the embodiment of the present application, Wherein, the cache memory is flash card, i.e. FLASH memory;Methods described includes:
Step S101:Judge whether to be cached with the flash card identical with the disk logical block address of data block to be stored Old data block;If it is, performing step S102, otherwise, step S103 is performed;
Block storage is most traditional storage form, and the speed buffering of writing that the embodiment of the present application is based on block memory technology is deposited The method of reservoir, i.e. data in the form of data block to be stored in cache memory and disk.
In present application example, the flash card is divided into some logical blocks
The disk logical block address of the data block to be stored is the information carried in write request, for indicating number to be stored According to storage location of the block in disk.
In the embodiment of the present application, after write request is received, first determine whether whether existed in cache memory With the disk logical block address identical old data block of data block to be stored, that is, judge to whether there is data block in flash card, and The disk logical block address of the disk logical block address of the data block and the data block to be stored is identical.
Step S102:The data block to be stored is write in the flash card in an asynchronous manner;
In the embodiment of the present application, if existed in flash card identical with the logical block address of the data block to be stored Old data block, then no matter whether there is free block in flash card, directly initiation, will be to be stored to the asynchronous write operation of flash card Data are write in the flash card.
It should be noted that, in the embodiment of the present application, described free block is the free block on logical meaning, therefore, is not being had In the case of available free piece, it may also have the free space in physical significance, therefore, in the case of no free block, Or data block to be stored can be write in flash card, further, in no free block also without in physical significance In the case of free space, flash card can perform erasing flow, and specific erase process is the common knowledge of this area, here no longer Repeat.
Step S103:The data block to be stored is write in the free block of the flash card in an asynchronous manner.
In the embodiment of the present application, if the logical block address identical with the data block to be stored is not present in flash card Old data block, then when there is free block in the flash card, initiate the asynchronous write operation to flash card, data to be stored write Enter in the flash card.
A kind of method for writing cache memory that the embodiment of the present application is provided, using flash card(That is FLASH is stored Device)As cache memory, when carrying out data buffer storage, judge whether be cached with flash card and data block to be stored Disk logical block address identical old data block, if it is present data block to be stored is directly write into institute in an asynchronous manner State in flash card, if it does not exist, then data block to be stored is write in an asynchronous manner in the free block of the flash card, realize The caching of data is write, and because flash card does not need reserve battery to protect electricity, data will not also lose after power down, therefore energy consumption Low, moreover, the price of flash card itself is less than the price of dynamic RAM, therefore, what the embodiment of the present application was provided writes height The method of fast buffer storage, reduces the cost of implementation of storage system, in other words, in the case of same cost, the application The buffer memory capacity that embodiment can be realized is bigger.
Moreover, FLASH memory can adapt to the hardware platform of current main-stream, operating system is not limited, hardware is not limited Platform, as long as there is a PCI-E slot.
Above-described embodiment, it is preferred that when data block to be stored is write in flash card, can use the number of daily record form According to layout, i.e., data block to be stored is stored successively by the order of flash memory logical block address from small to large, so can effectively protected Data I/O continuity is demonstrate,proved, so that when flash card carries out garbage reclamation, the valid data in executing garbage seldom, subtract Small flash card writes amplification(Reduce the number of times write to flash card), so as to avoid caused by writing for flash card The problem of service life of flash card is shortened.
The flow chart for another method for writing cache memory that the embodiment of the present application is provided is as shown in Fig. 2 described Step S103, which implements flow, to be included:
Step S201, judges to whether there is free block in the flash card;If it is present step S202 is performed, otherwise, Perform step S203;
Step S202:The data block to be stored is write in the free block in the flash card in an asynchronous manner;
Step S203:The data block to be stored is added in waiting list;
Step S204:Judge whether free block occur in flash card, if it is, performing step S202;Otherwise, continue etc. Treat.
In the embodiment of the present application, there is no caching and the disk logical block address phase of the data block to be stored in flash card With old data block when, first judge in flash card whether available free piece, it is if free block, then directly asynchronous to flash card initiation Write operation, data block to be stored is write in flash card;If without free block, progress, which is waited until in flash card, to be occurred During free block, asynchronous write operation just is initiated to flash card, will wait that depositing several data blocks writes in the free block of flash card.
Above-described embodiment, after the data block to be stored is write into the free block in the flash card, can also be wrapped Include:
With preserving the disk logical block address of the data block to be stored and the flash memory logical block of the data block to be stored The corresponding relation of location.
Wherein, the flash memory logical block address of the data block to be stored is exactly the data block to be stored in the flash card In logical block address, that is to say, that there is no caching and the disk logical block of the data block to be stored in the caching card During the corresponding old data block in address, after data block to be stored is write in the free block in caching card, data to be stored are preserved The corresponding relation of logical block address of the disk logical block address of block with the data block to be stored in caching card.
The specific flash memory in the disk logical block address and the data block to be stored that preserve the data block to be stored is patrolled When collecting the corresponding relation of block address, Hash table can be used, as shown in table 1:
The Hash table of table 1
In table 1, the value of each index(Hn, n=1,2,3 ...)It is to be obtained by disk logical block address by hash algorithm 's.DLBAm(M=1,2,3 ...)Represent disk logical block address;FLBAp(P=1,2,3 ...)Represent flash memory logical block address;By What is obtained after Hash operation in different disk logical block address is probably same index value, so, in an index Under value, the corresponding relation of multiple disk logical block address and flash memory logical block address may be corresponded to(As shown in table 1, H1 pairs is indexed Answer the corresponding relation of two disk logical block address and flash memory logical block address).In the embodiment of the present application, in order to reduce conflict (I.e. for the number for reducing corresponding relation under same index in Hash table), the number of index is set to logic in flash card 1.5 times of block address number.
The hash algorithm can be:Disk logical block address is multiplied by the 16 system integers of one signless 32, such as The 16 system integers of described signless 32 can be 9e370001, then, by disk logical block address and signless 32 The product of 16 system integers of position does complementation to the number of logical block address in flash card, you can with obtaining disk logical block Cryptographic Hash corresponding to location(That is index value), due to the 16 system numbers that disk logical block address is 32, therefore, disk logical block The corresponding index value in address is also the 16 system numbers of 32, specifically, can be determined according to the second formula, the second formula is:
H=(DLBA*0x9e370001UL)%N,
Wherein, H represents the index value corresponding to disk logical block address DLBA;0x9e370001UL is signless 32 16 system integer 9e370001;" % " represents to do complementation to N;N represents the number of logical block address in flash card.
Above-described embodiment, it is preferred that described to judge the disk logic with data block to be stored whether is cached with flash card Block address identical old data block can include:
Judge whether the flash memory logical block address corresponding with the disk logical block address of the data block to be stored;
If it is present determining to be cached with the disk logical block address identical with data block to be stored in the flash card Old data block;Otherwise, it determines uncached in the flash card have identical with the disk logical block address of the data block to be stored Old data block.
That is, the embodiment of the present application passes through the corresponding relation between disk logical block address and flash memory logical block address Determine the disk logical block address identical old data block with data block to be stored whether is cached with flash card, improve and write number According to speed.
Another of the embodiment of the present application offer writes the flow chart of the method for cache memory as shown in figure 3, inciting somebody to action The data block to be stored is write after the flash card, can also be included:
Step S301:The data block to be stored is labeled as dirty data block, and the data block addition to be stored is dirty Data block queue.
The embodiment of the present application provide another write cache memory method flow chart as shown in figure 4, in order to Ensure the validity of storage system, when the data volume of the storage in cache memory reaches certain value, it is necessary to will at a high speed Data in buffer memory are written in disk, therefore, the method for writing cache memory that the embodiment of the present application is provided It can also include:
Step S401:Obtain the current idle space proportion of the flash card;
In the embodiment of the present application, the space beyond the space shared by flash card apoplexy involving the solid organs data block is referred to as free space, So, the current idle space proportion of flash card is the ratio that current idle space accounts for flash card gross space in flash card.
Step S402:Judge whether the free space ratio is less than the first predetermined threshold value, if it is, performing step S403, otherwise, performs step S401;
First predetermined threshold value can be 20%, it is of course also possible to be configured according to actual needs, do not do have here Body is limited.
Step S403:Determine the number of dirty data block to be read;
The number of the dirty data block to be read is to need to write in disk from the cache memory The number of data block.The number of the dirty data block to be read can be according to the free space ratio-dependent, e.g., read After dirty data block, the ratio of the flash card free space is more than the second predetermined threshold value.Second predetermined threshold value can be waited In first predetermined threshold value, naturally it is also possible to more than first predetermined threshold value, be not specifically limited here.
Step S404:Each dirty data block in the dirty data block queue is subjected to heap row according to disk logical block address Sequence, obtains the first sequence heap;
In order to improve the efficiency for writing data in disk from cache memory, the embodiment of the present application is to dirty data Each dirty data block in block queue carries out heapsort according to disk logical block address, and the heapsort can be minimum heap row Sequence, i.e., the heap head of the first sequence heap is the minimum dirty data block of disk logical block address;The heapsort can also be to raft Sequence, i.e., the heap head of the first sequence heap is the maximum dirty data block of disk logical block address.
Which kind of it can specifically be determined using sortord according to the performance of disk:If disk is supported with pressing disk logical block The sequential access of location from small to large, then can select minimum heapsort;And if disk is supported by disk logical block address from big To small sequential access, then maximum heapsort can be selected;
In this step, due to when in dirty data block queue all dirty data block queues carry out heapsort, so, also may be used To be referred to as global heapsort.
Step S405:Several the first Asynchronous Requests are initiated, the number according to the dirty data block to be read is from described The heap head of first sequence heap starts the dirty data block in asynchronous flash memory card reading successively;
The number of first Asynchronous Request can be preset value;
Step S406:According to the disk logical block address of the dirty data block read by the dirty data block read carry out pair Sequence, obtains the second sequence heap;
In this step, heapsort only is carried out to the dirty data block read, accordingly it is also possible to be referred to as local heapsort, needed It is noted that heapsort all uses identical heapsort mode twice, or that is, all using minimum heapsort, or all use Maximum heapsort.
Step S407:The second Asynchronous Request is initiated, the dirty data block read is opened from the heap head of second pair of sequence Begin in asynchronous write disk successively, the number of second Asynchronous Request is the number of the dirty data block to be read.
After in the dirty data block write-in disk that will be read, just there are free free space, now, waiting list in flash card In data to be stored can just write flash card.
It should be noted that during minimum heapsort is carried out, if the dirty number newly increased in dirty data block queue It is less than the logical block address of the data block of heap head according to the logical block address of block, then the dirty data block that this is newly increased is added to being somebody's turn to do Sort in the corresponding dirty data block waiting list of heap, team is waited when the dirty data block on heap is all run through, then to dirty data block Dirty data block in row carries out heapsort, to ensure the data block read from flash card all in increasing state;If dirty number It is more than the logical block address of the data block of heap head according to the logical block address of the dirty data block newly increased in block queue, then increases this newly Plus dirty data block be directly added into sequence heap and carry out minimum heapsort.
And during maximum heapsort is carried out, if the logical block of the dirty data block newly increased in dirty data block queue Address is more than the logical block address of the data block of heap head, then is added to the dirty data block that this is newly increased corresponding with the sequence heap Dirty data block waiting list in, when the dirty data block on heap is all run through, then to the dirty data in dirty data block waiting list Block carries out heapsort, to ensure the data block read from flash card all in descending state;If new in dirty data block queue The logical block address of increased dirty data block is less than the logical block address of the data block of heap head, then the dirty data block newly increased this It is added directly into sequence heap and carries out maximum heapsort.
The present embodiment offer is exemplified below is written to process in disk by the data in cache memory, please Referring to Fig. 5, the process being written to the data in cache memory in disk that Fig. 5 provides for the embodiment of the present application is shown It is intended to;
In this example, have in dirty data block queue in 10 dirty data blocks, figure in each dirty data block marked as dirty data The disk logical block address of block;The number of dirty data block to be read is 5, then, when in flash card, the ratio of free space During less than the first predetermined threshold value, 10 dirty data blocks are subjected to minimum heapsort, the first sequence heap is obtained, the first sequence heap Heap head is the dirty data block that disk logical block address is 23, the disk logical block address of follow-up dirty data block is followed successively by 32,33, 44、48、79、95、158、189、789;Then, in an asynchronous manner since the heap head of the described first sequence heap, reading disk is patrolled Collect in five minimum dirty data blocks of block address, this example, the disk logical block address of five dirty data blocks of reading is respectively: 44、32、23、33、48;Then, this five dirty datas read are carried out with minimum heapsort again, the second sequence heap is obtained, The heap head of second sequence heap is still dirty data block that disk logical block address is 23, the disk logical block of follow-up dirty data block Location is followed successively by 32,33,44,48;Then, since the heap head of the second sequence heap, this five dirty data blocks are write in an asynchronous manner Enter into disk.
In the embodiment of the present application, when the data in cache memory are write in disk, using global heapsort And it is that global sequence heap and partial ordering's heap all maintain a waiting list with local heapsort(Wherein, global sequence heap pair Answer dirty data block queue, partial ordering's heap correspondence dirty data block waiting list)Ensure that data block is write from cache memory Enter succession during disk, improve data from cache memory be written to disk in efficiency, that is, improve brush effect Rate.
Above-described embodiment, it is preferred that the number of first Asynchronous Request can also be determined as follows:
The number of first Asynchronous Request can also be according to the upper and lower bound of default Asynchronous Request number, Yi Jigao The space availability ratio of fast buffer storage is determined, it is assumed that the lower limit of the number of the first Asynchronous Request be N, i.e. the first Asynchronous Request most It can initiate N number of less, the upper limit of the number of the first Asynchronous Request can at most initiate M for M, i.e. the first Asynchronous Request, at a high speed The space availability ratio of buffer storage is R, then, the number of the first Asynchronous Request can be determined according to the first formula, wherein, the One formula is:
V=N+(M-N)*R
Wherein, V is the number of the first Asynchronous Request;R=1-P, P are the ratio of flash card free space.
Specifically, the value that N value can be 4, M can be 256.
In the embodiment of the present application, of the first Asynchronous Request is dynamically adjusted according to the space availability ratio of cache memory Number so that operated when the space availability ratio of cache memory is less with less Asynchronous Request to disk, And when the space availability ratio of cache memory is larger, disk is operated with more Asynchronous Request, and due to different The number for walking request is more, and speed is faster, and the operation to disk is also more, therefore, and the embodiment of the present application had both ensured in space When utilization rate is larger(When i.e. space is more nervous)Data in cache memory are written to by disk with faster speed In, i.e., when space availability ratio is larger, spatial cache is reclaimed with faster speed;It can ensure again when space utilization is smaller (When i.e. space takes it easy), the operation to disk is reduced, to reduce due to reading or writing the infringement caused to disk to disk.
It is corresponding with embodiment of the method, a kind of structure for device for writing cache memory that the embodiment of the present application is provided Schematic diagram is as shown in fig. 6, wherein described cache memory is flash card, and described device can include:
Judge module 601, the first writing module 602 and the second writing module 603;
Judge module 601 is with being used to judge whether to be cached with the flash card disk logical block with data block to be stored Location identical old data block;
First writing module 602 is used to be cached with the judge module 601 judges the flash card to wait to deposit with described When storing up the disk logical block address identical old data block of data block, the data block to be stored is write in an asynchronous manner described In flash card;
Second writing module 603 be used in the judge module 601 judges the flash card it is uncached have treated with described During the disk logical block address identical old data block of data storage block, the data block to be stored is write into institute in an asynchronous manner In the free block for stating flash card.
The embodiment of the present application provide another device for writing cache memory structural representation as shown in fig. 7, Second writing module 603 can include:
First judging unit 701, the first r/w cell 702 and the second r/w cell 703;
First judging unit 701 is used to judge to whether there is free block in the flash card;
First r/w cell 702 is used for when first judging unit 701 is judged to there is free block in the flash card, The data block to be stored is write in the free block of the flash card in an asynchronous manner.
Second r/w cell 703 is used for when free block is not present during the judging unit judges the flash card, by institute State data to be stored and add waiting list, and when there is free block in the flash card, by the data block to be stored with different Step mode is write in the free block of the flash card.
The embodiment of the present application provide another write cache memory device structural representation as shown in figure 8, It can also include:
Preserving module 801, for writing the data block to be stored in the flash card in second writing module 603 Free block after, preserve the disk logical block address of the data block to be stored and the flash memory logical block of the data block to be stored The corresponding relation of address.
On the basis of embodiment illustrated in fig. 8, the embodiment of the present application provide another write the dress of cache memory The structural representation put is as shown in figure 9, the judge module 601 can include:
Second judging unit 901, the 3rd judging unit 902 and the 4th judging unit 903;
Second judging unit 901 is relative with the disk logical block address of the data block to be stored for judging whether The flash memory logical block address answered;
3rd judging unit 902 is used to judge exist and the data block to be stored in second judging unit 901 Disk logical block address corresponding flash memory logical block address when, determine to be cached with the flash card and the number to be stored According to the disk logical block address identical old data block of block;
4th judging unit 903 is used to judge to be not present and the data to be stored in second judging unit 901 During the corresponding flash memory logical block address of the disk logical block address of block, determine in the flash card it is uncached have wait to deposit with described Store up the disk logical block address identical old data block of data block.
The structural representation for another device for writing cache memory that the embodiment of the present application is provided is as shown in Figure 10, It can also include:
Mark module 1001, in first writing module 602 or second writing module 603 by the number to be stored After block write-in flash card, the data block to be stored is labeled as dirty data block, and the data block addition to be stored is dirty Data block queue.
The structural representation for another device for writing cache memory that the embodiment of the present application is provided is as shown in figure 11, It can also include:
Acquisition module 1101, determining module 1102, the first order module 1103, the first read through model 1104, the second sequence mould Block 1105, the 3rd writing module 1106;
Acquisition module 1101 is used for the current idle space proportion for obtaining the flash card;
Determining module 1102 is used to, when the free space ratio is less than the first predetermined threshold value, determine dirty number to be read According to number;
First order module 1103 is used for each dirty data block in the dirty data block queue according to disk logical block Address carries out heapsort, obtains the first sequence heap;
First read through model 1104 is used to initiate several the first Asynchronous Requests, according to the dirty data block to be read Dirty data block of the number since the heap head of the described first sequence heap successively in asynchronous flash memory card reading;
The disk logical block address that second order module 1105 is used for the dirty data block that basis is read is dirty by what is read Data block is carried out to sequence, obtains the second sequence heap;
3rd writing module 1106 is used to initiate the second Asynchronous Request, by the dirty data block read from the second row The heap head of sequence heap starts to write in disk successively, wherein, the number of second Asynchronous Request is the dirty data to be read The number of block.
The structural representation for another device for writing cache memory that the embodiment of the present application is provided is as shown in figure 12, Wherein, the cache memory is flash card, and described device can include:
At least one processor 1201, and the memory 1202 coupled with least one described processor;
At least one described processor is configured as:
Judge the disk logical block address identical legacy data with data block to be stored whether is cached with the flash card Block;
If so, then the data block to be stored is write in the flash card in an asynchronous manner;
If it is not, the data block to be stored is write in the free block in the flash card in an asynchronous manner.
Above-described embodiment, it is preferred that be configured as writing the data block to be stored in the free block of the flash card At least one processor can further be configured as:
Judge to whether there is free block in the flash card;
If it is present the data block to be stored is write in the free block in the flash card in an asynchronous manner;
If it does not exist, then the data block to be stored is added to waiting list, and appearance is empty in the flash card During not busy block, the step for writing the data block to be stored in free block in the flash card in an asynchronous manner is performed.
Above-described embodiment, it is preferred that at least one described processor can be further configured as:
After the data block to be stored is write into the free block in the flash card, the data block to be stored is preserved Disk logical block address and the data block to be stored flash memory logical block address corresponding relation.
Above-described embodiment, it is preferred that be configured as judging whether be cached with the flash card and data block to be stored At least one processor of disk logical block address identical old data block can be further configured as:
Judge whether the flash memory logical block address corresponding with the disk logical block address of the data block to be stored;
If it is present determining to be cached with the disk logical block address phase with the data block to be stored in the flash card Same old data block;Otherwise, it determines it is described state in flash card it is uncached with having with the disk logical block of the data block to be stored Location identical old data block.
Above-described embodiment, it is preferred that at least one described processor can be further configured as:
After the data block to be stored is write into the flash card, the data block to be stored is labeled as dirty data Block, and the data block to be stored is added into dirty data block queue.
Above-described embodiment, it is preferred that at least one described processor can be further configured as:
Obtain the current idle space proportion of the flash card;
When the ratio of the free space is less than the first predetermined threshold value, the number of dirty data block to be read is determined;
Each dirty data block in the dirty data block queue is subjected to heapsort according to disk logical block address, the is obtained One sequence heap;
Initiate several the first Asynchronous Requests, according to the dirty data block to be read number from described first sequence heap Heap head starts the dirty data block in asynchronous flash memory card reading successively;
The dirty data block read is carried out by heapsort according to the disk logical block address of the dirty data block read, obtained Second sequence heap;
Initiate the second Asynchronous Request, by the dirty data block read since second sequence heap heap head it is asynchronous successively Write in disk, the number of second Asynchronous Request is the number of the dirty data block to be read.
The embodiment of the present application can apply with the Cache frameworks in integrated machine system, with all-in-one system of the prior art Cache frameworks in system are different, and NVDIMM is substituted with FLASH memory in the integrated machine system that the embodiment of the present application is provided (Non-Volatile DIMM, a kind of Nonvolatile memory)As cache memory, as shown in figure 13;
In the Cache frameworks of all-in-one, Cache is not present in Service Processing Module, but is present in each storage section In point, the function of Service Processing Module with it is identical in the prior art, be mainly used in I/O(Input/output)The distribution processor of request. I/O requests pass through the distribution of Service Processing Module, it is possible to which which memory node is found where the storage region of its access is.
The processing unit that I/O is asked during memory node, comprising oneself independent CPU, independent in each memory node Cache, and one piece or several pieces of disks, the storage identical with Cache sizes, all of the disk number of each memory node Node constitutes the storage pool of whole storage system.
In the embodiment of the present application, for the write request of integrated machine system, pass through being routed to up to storage for Service Processing Module The method for writing cache memory that CPU in node, memory node is provided by the embodiment of the present application, write request is write " being write as work(" information is returned after FLASH memory.When the writing data quantity of FLASH memory reaches to a certain degree, then pass through this Apply for the method for writing cache memory that embodiment is provided, FLASH memory is write into Refresh Data into disk, to return The space in FLASH memory is received, is used for follow-up write request.
The embodiment of the present application can be used in block storage disk array, with of the prior art piece of storage disk array not Together, NVRAM is substituted in the array storage system that the embodiment of the present application is provided with FLASH memory(Non-Volatile Random Access Memory, nonvolatile random access memory)As cache memory, as shown in figure 14.
Typically N is dragged in block storage disk array using one(It is responsible for the disk cluster of the head+N platform Multi-disks of business processing Mode constitute overall storage system), cache memory is present in the high speed in the head section of storage system, head Buffer storage carries the I/O caching functions of left and right extension cabinet disk below, and head is typically connected with disk cluster by SAS buses Connect.In the embodiment of the present application, the CPU of head section realizes the function of writing cache memory.
Directly it can be held with reference to the step of the method or algorithm that the embodiments described herein is described with hardware, processor Capable software module, or the two combination are implemented.The foregoing description of the disclosed embodiments, makes this area professional technique Personnel can realize or using the present invention.A variety of modifications to these embodiments will be for those skilled in the art It will be apparent that generic principles defined herein can without departing from the spirit or scope of the present invention, at it Realized in its embodiment.Therefore, the embodiments of the present invention described above are not intended to limit the scope of the present invention. Any modifications, equivalent substitutions and improvements made within the spirit and principles in the present invention etc., should be included in the power of the present invention Within the scope of profit is claimed.

Claims (18)

1. a kind of method for writing cache memory, it is characterised in that the cache memory is flash card, the side Method includes:
Judge the disk logical block address identical old data block with data block to be stored whether is cached with the flash card;
If it is, the data block to be stored is write in the flash card in an asynchronous manner;
If it is not, then judging to whether there is free block in the flash card, if it is present by the data block to be stored with different Step mode is write in the free block in the flash card, if it does not exist, then the data block to be stored is added into wait team Row, and when there is free block in the flash card, the data block to be stored is write into the flash card in an asynchronous manner Free block.
2. according to the method described in claim 1, it is characterised in that the data block to be stored is being write into the flash card In free block after, in addition to:
Preserve the disk logical block address of the data block to be stored and the flash memory logical block address of the data block to be stored Corresponding relation.
3. method according to claim 2, it is characterised in that described to judge whether be cached with and wait in the flash card to deposit The disk logical block address identical old data block of storage data block includes:
Judge whether the flash memory logical block address corresponding with the disk logical block address of the data block to be stored;
If it is present determining to be cached with the disk logical block address identical with the data block to be stored in the flash card Old data block;Otherwise, it determines described state the uncached disk logical block address phase having with the data block to be stored in flash card Same old data block.
4. the method according to claim 1-3 any one, it is characterised in that write by the data block to be stored After the flash card, in addition to:
The data block to be stored is labeled as dirty data block, and the data block to be stored is added into dirty data block queue.
5. method according to claim 4, it is characterised in that also include:
Obtain the current idle space proportion of the flash card;
When the ratio of the free space is less than the first predetermined threshold value, the number of dirty data block to be read is determined;
Each dirty data block in the dirty data block queue is subjected to heapsort according to disk logical block address, first row is obtained Sequence heap;
Initiate several the first Asynchronous Requests, according to the dirty data block to be read number from described first sequence heap heap head Start the dirty data block in asynchronous flash memory card reading successively;
The dirty data block read is carried out by heapsort according to the disk logical block address of the dirty data block read, second is obtained Sort heap;
Initiate the second Asynchronous Request, by the dirty data block read since the heap head of the second sequence heap asynchronous write successively In disk, the number of second Asynchronous Request is the number of the dirty data block to be read.
6. method according to claim 5, it is characterised in that the heapsort is minimum heapsort.
7. method according to claim 5, it is characterised in that the heapsort is maximum heapsort.
8. method according to claim 5, it is characterised in that the number of first Asynchronous Request is true according to the first formula Fixed, first formula is:
V=N+ (M-N) * R
Wherein, V is the number of the first Asynchronous Request;N is the lower limit of default Asynchronous Request number;M is default Asynchronous Request The upper limit of number;R is the current space availability ratio of flash card.
9. a kind of device for writing cache memory, it is characterised in that the cache memory is flash card, the dress Put including:
Whether judge module is identical with the disk logical block address of data block to be stored for judging to be cached with the flash card Old data block;
First writing module, for being cached with judging the flash card in the judge module and the data block to be stored During disk logical block address identical old data block, the data block to be stored is write in the flash card in an asynchronous manner;
Second writing module, for judging the flash card in the judge module in uncached have and the data block to be stored Disk logical block address identical old data block when, the data block to be stored is write into the flash card in an asynchronous manner In free block;
Wherein, second writing module includes:
First judging unit, for judging to whether there is free block in the flash card;
First r/w cell, for when first judging unit is judged to there is free block in the flash card, being treated described Data storage block writes in the free block in the flash card in an asynchronous manner;
Second r/w cell, during for free block to be not present in judging the flash card in the judging unit, waits to deposit by described Store up data block and add waiting list, and when there is free block in the flash card, by the data block to be stored with asynchronous side Formula is write in the free block in the flash card.
10. device according to claim 9, it is characterised in that also include:
Preserving module, for the free block for writing the data block to be stored in the flash card in second writing module Afterwards, pair of the disk logical block address of the data block to be stored and the flash memory logical block address of the data block to be stored is preserved It should be related to.
11. device according to claim 10, it is characterised in that the judge module includes:
Second judging unit, for judging whether the sudden strain of a muscle corresponding with the disk logical block address of the data block to be stored Deposit logical block address;
3rd judging unit, for the disk logic for judging to have with the data block to be stored in second judging unit During the corresponding flash memory logical block address of block address, determine to be cached with the disk with the data block to be stored in the flash card Logical block address identical old data block;
4th judging unit, for judging to patrol in the absence of the disk with the data block to be stored in second judging unit During the corresponding flash memory logical block address of volume block address, determine uncached in the flash card have and the data block to be stored Disk logical block address identical old data block.
12. the device according to claim 9-11 any one, it is characterised in that also include:
Mark module, after in first writing module or the second writing module by the data block write-in flash card to be stored, The data block to be stored is labeled as dirty data block, and the data block to be stored is added into dirty data block queue.
13. device according to claim 12, it is characterised in that also include:
Acquisition module, the current idle space proportion for obtaining the flash card;
Determining module, for when the free space ratio is less than the first predetermined threshold value, determining dirty data block to be read Number;
First order module, for each dirty data block in the dirty data block queue to be carried out according to disk logical block address Heapsort, obtains the first sequence heap;
First read through model, for initiating several the first Asynchronous Requests, the number according to the dirty data block to be read is from institute State the first sequence heap heap head and start dirty data block in asynchronous flash memory card reading successively;
Second order module, for being entered the dirty data block read according to the disk logical block address of the dirty data block read Row heapsort, obtains the second sequence heap;
3rd writing module, for initiating the second Asynchronous Request, by the dirty data block read from the described second sequence heap Heap head starts to be written in disk successively, and the number of second Asynchronous Request is the number of the dirty data block to be read.
14. a kind of device for writing cache memory, it is characterised in that the cache memory is flash card, described Device includes:
At least one processor, it is configured as:
Judge the disk logical block address identical old data block with data block to be stored whether is cached with the flash card;
If so, then the data block to be stored is write in the flash card in an asynchronous manner;
If it is not, judge in the flash card whether there is free block, if it is present by the data block to be stored with Asynchronous system is write in the free block in the flash card, if it does not exist, then the data block to be stored is added into wait Queue, and when there is free block in the flash card, the data block to be stored is write into the flash card in an asynchronous manner In free block;And
Memory, it is coupled at least one described processor.
15. device according to claim 14, it is characterised in that at least one described processor is configured to:
After the data block to be stored is write into the free block in the flash card, the magnetic of the data block to be stored is preserved The corresponding relation of the flash memory logical block address of disk logical block address and the data block to be stored.
16. device according to claim 15, it is characterised in that be configured as judging whether be cached with the flash card It is configured to at least one processor of the disk logical block address identical old data block of data block to be stored:
Judge whether the flash memory logical block address corresponding with the disk logical block address of the data block to be stored;
If it is present determining to be cached with the disk logical block address identical with the data block to be stored in the flash card Old data block;Otherwise, it determines described state the uncached disk logical block address phase having with the data block to be stored in flash card Same old data block.
17. the device according to claim 14-16 any one, it is characterised in that at least one described processor enters one Step is configured as:
After the data block to be stored is write into the flash card, the data block to be stored is labeled as dirty data block, And the data block to be stored is added into dirty data block queue.
18. device according to claim 17, it is characterised in that at least one described processor is configured to:
Obtain the current idle space proportion of the flash card;
When the ratio of the free space is less than the first predetermined threshold value, the number of dirty data block to be read is determined;
Each dirty data block in the dirty data block queue is subjected to heapsort according to disk logical block address, first row is obtained Sequence heap;
Initiate several the first Asynchronous Requests, according to the dirty data block to be read number from described first sequence heap heap head Start the dirty data block in asynchronous flash memory card reading successively;
The dirty data block read is carried out by heapsort according to the disk logical block address of the dirty data block read, second is obtained Sort heap;
Initiate the second Asynchronous Request, by the dirty data block read since the heap head of the second sequence heap asynchronous write successively In disk, the number of second Asynchronous Request is the number of the dirty data block to be read.
CN201310400488.2A 2013-09-05 2013-09-05 Write the method and device of cache memory Active CN103488582B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310400488.2A CN103488582B (en) 2013-09-05 2013-09-05 Write the method and device of cache memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310400488.2A CN103488582B (en) 2013-09-05 2013-09-05 Write the method and device of cache memory

Publications (2)

Publication Number Publication Date
CN103488582A CN103488582A (en) 2014-01-01
CN103488582B true CN103488582B (en) 2017-07-28

Family

ID=49828830

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310400488.2A Active CN103488582B (en) 2013-09-05 2013-09-05 Write the method and device of cache memory

Country Status (1)

Country Link
CN (1) CN103488582B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095116B (en) * 2014-05-19 2017-12-12 华为技术有限公司 Cache method, cache controller and the processor replaced
CN105988719B (en) * 2015-02-07 2019-03-01 深圳市硅格半导体有限公司 Storage device and its method for handling data
CN105117351B (en) 2015-09-08 2018-07-03 华为技术有限公司 To the method and device of buffering write data
CN109189726B (en) * 2018-08-08 2020-12-22 奇安信科技集团股份有限公司 Processing method and device for read-write log

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636355A (en) * 1993-06-30 1997-06-03 Digital Equipment Corporation Disk cache management techniques using non-volatile storage
CN1527973A (en) * 2000-06-23 2004-09-08 英特尔公司 Non-volatile cache
CN1862475A (en) * 2005-07-15 2006-11-15 华为技术有限公司 Method for managing magnetic disk array buffer storage
CN102136274A (en) * 2009-12-30 2011-07-27 爱国者电子科技有限公司 Mobile hard disk with two storage media
CN102169464A (en) * 2010-11-30 2011-08-31 北京握奇数据系统有限公司 Caching method and device used for non-volatile memory, and intelligent card

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004706B (en) * 2009-09-01 2012-09-19 联芯科技有限公司 Flash erasing power-fail protection method based on FTL(Flash Translation Layer)
CN102981783A (en) * 2012-11-29 2013-03-20 浪潮电子信息产业股份有限公司 Cache accelerating method based on Nand Flash

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636355A (en) * 1993-06-30 1997-06-03 Digital Equipment Corporation Disk cache management techniques using non-volatile storage
CN1527973A (en) * 2000-06-23 2004-09-08 英特尔公司 Non-volatile cache
CN1862475A (en) * 2005-07-15 2006-11-15 华为技术有限公司 Method for managing magnetic disk array buffer storage
CN102136274A (en) * 2009-12-30 2011-07-27 爱国者电子科技有限公司 Mobile hard disk with two storage media
CN102169464A (en) * 2010-11-30 2011-08-31 北京握奇数据系统有限公司 Caching method and device used for non-volatile memory, and intelligent card

Also Published As

Publication number Publication date
CN103488582A (en) 2014-01-01

Similar Documents

Publication Publication Date Title
CN102640226B (en) There is the storer of internal processor and the method for control store access
US8769318B2 (en) Asynchronous management of access requests to control power consumption
TWI416323B (en) Method,system and semiconductor device for management workload
CN105117351B (en) To the method and device of buffering write data
CN105980992B (en) A kind of storage system, the method for identification data block stability and device
CN105095116A (en) Cache replacing method, cache controller and processor
CN105260128B (en) A kind of method and storage device for writing data into storage device
CN103488582B (en) Write the method and device of cache memory
CN103999042B (en) Bootload data
CN104375895B (en) For the data storage dispatching method and device between multiple memorizers
CN103814370B (en) Modular exponentiation with partitioned and scattered storage of Montgomery multiplication results
CN102362464A (en) Memory access monitoring method and device
CN108228470A (en) A kind of method and apparatus for handling the write order to NVM write-in data
CN107430554A (en) Storage cache performance is improved as the standard that cache is inserted by using the compressibility of data
CN106294226A (en) SSD controller chip based on embedded STT MRAM, solid state hard disc
CN109358809A (en) A kind of RAID data storage system and method
CN106775462A (en) A kind of method and apparatus that memory copying is reduced during read-write
CN105607862A (en) Solid state disk capable of combining DRAM (Dynamic Random Access Memory) with MRAM (Magnetic Random Access Memory) and being provided with backup power
CN109558334A (en) Junk data recovery method and solid storage device
CN102520885B (en) Data management system for hybrid hard disk
US8977800B2 (en) Multi-port cache memory apparatus and method
CN105630699B (en) A kind of solid state hard disk and read-write cache management method using MRAM
CN109783000A (en) A kind of data processing method and equipment
CN107544912A (en) A kind of log recording method, loading method and its device
KR101351550B1 (en) Dual Buffer Architecture and Data Management for Non-Volatile based Main Memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160726

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant after: Huawei Technologies Co., Ltd.

Address before: Building 2, B District, Bantian HUAWEI base, Longgang District, Shenzhen, Guangdong

Applicant before: Shenzhen Huawei Technologies Co., Ltd.

GR01 Patent grant
GR01 Patent grant