CN105183374A - Data read and write method and mainboard - Google Patents

Data read and write method and mainboard Download PDF

Info

Publication number
CN105183374A
CN105183374A CN201510542803.4A CN201510542803A CN105183374A CN 105183374 A CN105183374 A CN 105183374A CN 201510542803 A CN201510542803 A CN 201510542803A CN 105183374 A CN105183374 A CN 105183374A
Authority
CN
China
Prior art keywords
read
write
data
fpga
hotspot database
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
CN201510542803.4A
Other languages
Chinese (zh)
Other versions
CN105183374B (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 Tengling Technology Co Ltd
Original Assignee
Beijing Tengling 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 Tengling Technology Co Ltd filed Critical Beijing Tengling Technology Co Ltd
Priority to CN201510542803.4A priority Critical patent/CN105183374B/en
Publication of CN105183374A publication Critical patent/CN105183374A/en
Application granted granted Critical
Publication of CN105183374B publication Critical patent/CN105183374B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

The application provides a mainboard, applied to a storage server, and the mainboard comprises a CPU, a data read and write module based on an FPGA, and a memory. The data read and write module based on the FPGA is separately connected to the CPU and a disk array of the storage server. The memory is connected to the data read and write module based on the FPGA. The data read and write module based on the FPGA is configured to receive a read and write IO request delivered by the CPU, analyze the read and write IO request, to obtain a corresponding read and write address, and determine whether the obtained read and write address hits an address index in a preset hotspot database in the memory; and when the obtained read and write address hits the address index in the preset hotspot database, based on hotspot data in the hotspot database, locally perform a read and write operation corresponding to the read and write IO request. The mainboard can improve an access speed of the hotspot data and whole read and write performance of the storage server.

Description

A kind of data read-write method and mainboard
Technical field
The application relates to the communications field, particularly relates to a kind of data read-write method and mainboard.
Background technology
Storage server is a kind of server that can provide very large storage space, it must have process chip fast, larger RAM (RandomAccessMemory, random access memory), and very large internal disk space, to tackle the application allotment demand that terminal user may occur at any time.
In storage server, the core of mainboard normally storage server design.In the existing framework of storage server mainboard, CPU is usually by SAS (SerialAttachedSCSI, i.e. serial SCSI technology) controller and SAS expander and disk array connect, when carrying out reading and writing data, CPU will receive from I/O functional area and read I/O request and write I/O request to be issued to disk array by SAS controller and SAS expander, carry out corresponding read-write operation.
Disk array is when completing corresponding read-write operation, disk unit in disk array rotates with constant speed, in order to read operation and write operation can be completed, the magnetic head of disk must be able to move on required magnetic track, and under waiting for that the starting position of required sector rotates to magnetic head, and then start read operation and write operation.
Therefore, disk unit is when carrying out reading and writing data, and the total duration spent by reading and writing data can comprise seek time usually, rotates delay time and transmission time three part.Due in actual applications, disk is when carrying out reading and writing data, usually long between head seek time and rotation time delay, if CPU frequently accesses disk, the most of the time of disk work is all at tracking, work efficiency will be very low, whole computing system must be caused to run slowly, therefore accelerate extremely to be necessary to disk access.
Summary of the invention
The application proposes a kind of data read-write method, is applied to storage server, and the mainboard of described storage server comprises CPU, the data read-write module based on FPGA, internal memory; The described data read-write module based on FPGA is connected respectively with the disk array of described CPU and described storage server; Described internal memory is connected with the described data read-write module based on FPGA; Described method comprises:
Steps A, the described data read-write module based on FPGA receive the read-write I/O request that described CPU issues, and carry out described read-write I/O request resolving the read/write address obtaining correspondence;
Step B, the described data read-write module based on FPGA judge get described read/write address whether hit in described internal memory preset hotspot database in allocation index;
Step C, when allocation index in the described default hotspot database of described read/write address hit got, the described data read-write module based on FPGA performs the read-write operation corresponding with described read-write I/O request based on the hot spot data in described hotspot database in this locality.
Optionally, described step C specifically comprises:
When resolve that CPU issues read the allocation index read in the hotspot database preset described in address hit that I/O request gets time, the hot spot data corresponding with this allocation index is read in the hotspot database preset from described internal memory, and the hot spot data read is returned to CPU, to read the originating end main frame of I/O request described in this hot spot data sends to by CPU;
When resolving the allocation index write in the described default hotspot database of write address hit that I/O request gets that CPU issues, write write data corresponding to I/O request stored in described hotspot database by with this, hot spot data corresponding with this allocation index in described hotspot database is upgraded.
Optionally, described step B specifically comprises:
Before judging to get the allocation index whether described read/write address hit in the hotspot database preset in described internal memory, add up for the data corresponding with the described read/write address number of times that conducts interviews;
Judge whether the access times counted reach threshold value;
When the access times of the arbitrary data counted reach threshold value, these data are kept in described default hotspot database as hot spot data, and in this hotspot database, create the corresponding relation between this data and allocation index of these data.
Optionally, described step B comprises further:
When the lasting duration that arbitrary hot spot data in described default hotspot database is not read reaches preset duration, this hot spot data is written back to described disk array from described internal memory, and deletes in described default hotspot database the allocation index corresponding with this hot spot data preserved.
Optionally, described internal memory comprises high-capacity flash memory.
The application also proposes a kind of mainboard, is applied to storage server, and described mainboard comprises CPU, the data read-write module based on FPGA, internal memory; Wherein, the described data read-write module based on FPGA is connected respectively with the disk array of described CPU and described storage server; Described internal memory is connected with the described data read-write module based on FPGA; Wherein:
The described data read-write module based on FPGA, for receiving the read-write I/O request that described CPU issues, and carries out described read-write I/O request resolving the read/write address obtaining correspondence;
The described data read-write module based on FPGA judges to get described read/write address further and whether hits allocation index in the hotspot database preset in described internal memory;
When the described read/write address got hits the allocation index in described default hotspot database, the described data read-write module based on FPGA is further used for performing the read-write operation corresponding with described read-write I/O request based on the hot spot data in described hotspot database in this locality.
Optionally, the described data read-write module based on FPGA is further used for:
When resolve that CPU issues read the allocation index read in the hotspot database preset described in address hit that I/O request gets time, the hot spot data corresponding with this allocation index is read in the hotspot database preset from described internal memory, and the hot spot data read is returned to CPU, to read the originating end main frame of I/O request described in this hot spot data sends to by CPU;
When resolving the allocation index write in the described default hotspot database of write address hit that I/O request gets that CPU issues, write write data corresponding to I/O request stored in described hotspot database by with this, hot spot data corresponding with this allocation index in described hotspot database is upgraded.
Optionally, the described data read-write module based on FPGA is further used for:
Before judging to get the allocation index whether described read/write address hit in the hotspot database preset in described internal memory, add up for the data corresponding with the described read/write address number of times that conducts interviews;
Judge whether the access times counted reach threshold value;
When the access times of the arbitrary data counted reach threshold value, these data are kept in described default hotspot database as hot spot data, and in this hotspot database, create the corresponding relation between this data and allocation index of these data.
Optionally, the described data read-write module based on FPGA is further used for:
When the lasting duration that arbitrary hot spot data in described default hotspot database is not read reaches preset duration, this hot spot data is written back to described disk array from described internal memory, and deletes in described default hotspot database the allocation index corresponding with this hot spot data preserved.
Optionally, described internal memory comprises high-capacity flash memory.
The application proposes a kind of mainboard framework of new storage server, and this mainboard framework comprises CPU, the data read-write module based on FPGA, internal memory; The described data read-write module based on FPGA is connected respectively with the disk array of described CPU and described storage server; Described internal memory is connected with the described data read-write module based on FPGA.CPU is when carrying out reading and writing data, data read-write module based on FPGA receives the read-write I/O request that CPU issues, carry out resolving to described read-write I/O request and obtain corresponding read/write address, and judge to get described read/write address and whether hit allocation index in the hotspot database preset in described internal memory; When the described read/write address got hits the allocation index in described default hotspot database, the described data read-write module based on FPGA performs the read-write operation corresponding with described read-write I/O request based on the hot spot data in described hotspot database in this locality.
Due in this mainboard framework, when the hot spot data read and write data in hit hotspot database that the read-write I/O request that CPU initiates is corresponding, the read-write operation corresponding with described read-write I/O request is completed according to based on the data in described hotspot database in its this locality by by the data read-write module based on FPGA, and do not need this read-write I/O request to be issued to disk array to perform corresponding read-write operation, the read-write operation number of times that therefore effectively can reduce monolithic disk in disk array saves the tracking duration of disk, thus the acceleration of disk access can be realized, greatly improve the access speed of hot spot data, improve the overall readwrite performance of storage server.
Accompanying drawing explanation
Fig. 1 is the mainboard Organization Chart of a kind of storage server that the application one embodiment provides;
Fig. 2 is the mainboard Organization Chart of the another kind of storage server that the application one embodiment provides;
Fig. 3 is the process flow diagram of a kind of data read-write method that the application one embodiment provides.
Embodiment
Refer to Fig. 1, Fig. 1 is the mainboard configuration diagram of storage server in existing realization.
As shown in Figure 1, in the mainboard framework of storage server, generally include business I/O port, CPU, IOH (InputOutputHub, input and output hub), internal memory, SAS controller, SAS expander and RAID array.
Wherein, CPU is responsible for operating system, RAID algorithm and all business processing and calculates relevant work.IOH is the chipset supporting CPU, is responsible for and provides some low-speed interfaces; Such as, management network port, button and serial ports etc.Internal memory, for providing larger capacity and buffer memory faster to system; Such as, this internal memory can be the internal memory of DDR3 specification.SAS controller, is responsible for providing SAS protocol conversion, and the process of associated storage instruction.SAS expander, is responsible for the port number expanding SAS controller, is equivalent to a switch.RAID array, be the array with redundant ability be made up of independent disk, disk array can be by the cheaper disk of a lot of price, the disk group that the capacity be combined into is huge, thus promotes the efficiency of whole disk system; Such as, RAID array can be by the SATA of compatible SAS agreement (SerialAdvancedTechnologyAttachment, Serial Advanced Technology Attachment) hard disk or SAS hard disk.
In above-mentioned mainboard framework, the read-write operation of data is responsible for process primarily of CPU.
CPU is when carrying out the read operation of data, read I/O request and enter CPU from business I/O port, CPU is receiving after this reads I/O request, first this being read I/O request is buffered in internal memory, what then CPU read buffer memory from internal memory reads I/O request, again this is read I/O request by SAS controller, then be handed down to disk array through SAS expander.
After what disk array received that CPU issues read I/O request, the disk of disk array starts to rotate, tracking, then performing reads after read operation corresponding to I/O request with this, the data read are passed through SAS controller, be cached in internal memory through SAS expander again, then from internal memory, read the data of buffer memory by CPU, sent to by business I/O port and read the originating end main frame of I/O request to this.
CPU is when carrying out the write operation of data, write I/O request and enter CPU from business I/O port, CPU is receiving after this writes I/O request, first this is write the data buffer storage of I/O request and this secondary write in internal memory, what then CPU read buffer memory from internal memory writes I/O request, again this is write I/O request by SAS controller, then be handed down to disk array through SAS expander.
After what disk array received that CPU issues write I/O request, the disk of disk array starts to rotate, tracking, then perform and write write operation corresponding to I/O request with this data being buffered in internal memory secondary write are write successfully, return a successful notice message of write, this notice message passes through SAS controller, be cached in internal memory through SAS expander again, from internal memory, read the successful notice message of this write of buffer memory again by CPU, send to this to the originating end main frame writing I/O request by business I/O port.
Visible, in the existing mainboard framework of storage server, the disk of disk array is when receiving I/O request that CPU issues and carrying out reading and writing data, usually long between head seek time and rotation time delay, if CPU frequently accesses disk, work efficiency will be very low all at tracking the most of the time of disk work, whole computing system must be caused to run slowly, therefore accelerate extremely to be necessary to disk access.
In view of this, the application proposes a kind of mainboard framework of new storage server, and this mainboard framework comprises CPU, the data read-write module based on FPGA, internal memory; The described data read-write module based on FPGA is connected respectively with the disk array of described CPU and described storage server; Described internal memory is connected with the described data read-write module based on FPGA.CPU is when carrying out reading and writing data, data read-write module based on FPGA receives the read-write I/O request that CPU issues, carry out resolving to described read-write I/O request and obtain corresponding read/write address, and judge to get described read/write address and whether hit allocation index in the hotspot database preset in described internal memory; When the described read/write address got hits the allocation index in described default hotspot database, the described data read-write module based on FPGA performs the read-write operation corresponding with described read-write I/O request based on the hot spot data in described hotspot database in this locality.
Due in this mainboard framework, when the hot spot data read and write data in hit hotspot database that the read-write I/O request that CPU initiates is corresponding, the read-write operation corresponding with described read-write I/O request is completed according to the data in hotspot database in its this locality by by the data read-write module based on FPGA, and do not need this read-write I/O request to be issued to disk array to perform corresponding read-write operation, the read-write operation number of times that therefore effectively can reduce monolithic disk in disk array saves the tracking duration of disk, thus the acceleration of disk access can be realized, greatly improve the access speed of hot spot data, improve the overall readwrite performance of storage server.
The application to be described in conjunction with concrete application scenarios below by specific embodiment.
Please refer to Fig. 2, Fig. 2 is a kind of mainboard framework that the application one embodiment provides, and is applied to storage server.
As shown in Figure 2, in this mainboard framework, the second internal memory comprising CPU, data read-write module (hereinafter referred to as FPGA), business I/O port, disk array and the first internal memory be connected with CPU based on FPGA (FieldProgrammableGateArray, i.e. field programmable gate array) and be connected with FPGA.Wherein, described FPGA and CPU is connected; Described FPGA is connected with the disk array of storage server; Described first internal memory can be the internal memory of DDR3 specification; Described second internal memory can be high-capacity flash memory.
What deserves to be explained is, the disk array of FPGA and storage server is when being connected, can to be controlled by SAS and SAS expander is connected with disk array, also directly can to connect in the function and disk array being realized SAS controller by analog-driven on FPGA.
Wherein, realize by analog-driven on FPGA this implementation that the function of SAS controller and disk array directly connect, effectively can shorten the data path during access of CPU conducting disk, reduce time delay.
In this mainboard framework, a hotspot database in the second internal memory be connected with described FPGA, can be pre-set, for depositing hot spot data and allocation index corresponding to this hot spot data in this hotspot database.
When realizing, this hotspot database can be a default cache table for recording hot spot data and allocation index, this second internal memory can be jumbo buffer memory, and wherein this jumbo buffer memory can be jumbo common memory, also can be jumbo flash memory; Such as, the flash memory produced by cascade system or the common memory of hundreds of G size can be adopted.
Wherein, when above-mentioned jumbo buffer memory is jumbo flash memory, based on the characteristic of flash memory self, after can ensureing power down, hot spot data can not be lost.When above-mentioned jumbo buffer memory is jumbo common memory, can handling property be improved, but during in order to ensure that hot spot data is not lost, need for this jumbo common memory arranges an independently standby power supply.In addition because above-mentioned jumbo buffer memory has larger capacity, therefore can a large amount of hot spot data of buffer memory, thus increase the access hit rate of hot spot data.
When FPGA is after the read-write I/O request issued by CPU received, corresponding read/write address can be obtained by resolving the read-write I/O request received, if when the read/write address parsed hits the allocation index in hotspot database, FPGA directly can perform corresponding read-write operation in this locality based on the hot spot data in this hotspot database, thus does not need this read-write I/O request to be issued to disk array to perform corresponding read-write operation.
In this way, complete the parsing of read-write I/O request owing to being carried out alternative CPU by FPGA, therefore can share the calculating pressure of CPU, thus the access speed of hot spot data can be greatly improved, promote the overall readwrite performance of storage server.
In above-mentioned mainboard framework, the read-write operation of data is still responsible for process by CPU.
Below the process that CPU carries out data reading and writing operation is described.
In this mainboard framework, the read-write I/O request that FPGA issues for receiving described CPU, and carry out described read-write I/O request resolving the read/write address obtaining correspondence.After getting corresponding read/write address, FPGA can judge to get described read/write address and whether hit allocation index in the hotspot database preset in described internal memory; When the described read/write address got hits the allocation index in described default hotspot database, FPGA can perform the read-write operation corresponding with described read-write I/O request based on the hot spot data in described hotspot database in this locality.
Particularly, when user initiates a read operation by main frame to storage server, one can be sent to storage server and read I/O request, LBA (LogicalBlockAddress, the logical block addresses) address that the data that can comprise this secondary reading in this I/O request store in the disk array of storage server.Storage server is when I/O request is read in reception, and this reads I/O request can enter CPU by business I/O port, and this, receiving after this reads I/O request, is first read I/O request and be buffered in the first internal memory by CPU.Then CPU from internal memory, read buffer memory again this read I/O request, this is read I/O request and is handed down to FPGA.
Same reason, when user initiates a write operation by main frame to storage server, can send one to storage server and write I/O request, can comprise the LBA address that will write data in this I/O request.Storage server receive write I/O request and to write data time, this writes I/O request and the data that will write can enter CPU by business I/O port, CPU is receiving after this writes I/O request and the data that will write, first this is write I/O request and the data buffer storage that will write in the first internal memory, then CPU from internal memory, read buffer memory again this write I/O request, and this read I/O request be handed down to FPGA.
In this mainboard framework, FPGA receive that CPU issues read I/O request and write I/O request after, I/O request can be read to what receive and writes I/O request and resolve, obtain and corresponding read address and write address, then read address and data corresponding to the write address number of times that conducts interviews according to the number of times pair of the same address parsed and this and add up; Wherein, the access times of data can comprise the number of times of reading and the number of times of write.
Such as, when FPGA by resolve receive read I/O request or write after IO gets an address first, show that the data corresponding with this address there occurs and once reads or write, FPGA can be that data record corresponding to this address is once accessed; When FPGA by resolve receive read I/O request or write after IO gets this address again, show that the data corresponding with this address there occurs again once to read or write-access, so FPGA can upgrade the access times of having added up, the access times of data corresponding for this address are added one, by that analogy.
In this way, FPGA can in the read-write process of data to all occur read-write data conduct interviews number of times statistics.Meanwhile, for the access times of having added up, by the access times counted being compared with the threshold value preset, FPGA can also determine that the data which occurs to read and write are hot spot data.
When realizing, FPGA is in the statistic processes conducting interviews number of times, real-time for the access times counted can be compared with the threshold value preset, when the access times of arbitrary data reach default threshold value, then can determine that these data are hot spot data, these data are saved in hotspot database, and in hotspot database, set up the corresponding relation between this data and allocation index of these data.Wherein, described default threshold value is not particularly limited in this application, can set according to the business demand of reality
Such as, after FPGA resolves reading of receiving I/O request gets an address again, now the access times of data corresponding for this address can be added one by FPGA, and access times current for these data and the threshold value preset are compared simultaneously, if now the access times of these data reach threshold value, when FPGA is when receiving these data read that disk array returns, can these data be saved in hotspot database as hot spot data, the corresponding relation with these data be set up as allocation index in the LBA address of these data in hotspot database simultaneously.Same reason, after FPGA resolves writing of receiving I/O request gets an address again, now the access times of data corresponding for this address can be added one by FPGA, and access times current for these data and the threshold value preset are compared simultaneously, if now the access times of these data reach threshold value, the data of this secondary write can directly be saved in hotspot database as hot spot data by FPGA, the corresponding relation with these data are set up as allocation index in the LBA address of these data in hotspot database simultaneously.
Certainly, in actual applications, the hot spot data preserved in hotspot database, also manually can be specified by keeper, not be particularly limited in the present embodiment; Such as, the data relevant to each class hot spot service manually can be copied to hotspot database by keeper from disk array.
For the hot spot data be kept in hotspot database, when FPGA receives reading I/O request or writing I/O request of data in for hotspot database again, directly can complete corresponding read-write operation from hotspot database, and will not read I/O request or write I/O request to be issued to disk array to carry out corresponding read-write operation.
Such as, when realizing, when FPGA receive one by CPU issue read I/O request time, first FPGA can read I/O request and resolves to obtain and corresponding read address this, then the address of reading parsed can be mated with the allocation index in hotspot database by FPGA successively, judges that this is read address and whether hits allocation index in hot spot data; If when this reads the allocation index in address hit hot spot data, now reading data corresponding to address with this is hot spot data, FPGA directly can perform in this locality and read read operation corresponding to I/O request with this, read from hotspot database and read address corresponding data with this, then the data read are returned to CPU, then send to this to read initiator's main frame of I/O request by CPU by business I/O port.Certainly, if this reads the allocation index in address misses hotspot database, so this is read I/O request and is issued to disk array by FPGA, carries out tracking by the disk on disk array, reads data from the disk of disk array.
When FPGA receive one by CPU issue write I/O request time, first FPGA can write I/O request and resolves and obtain corresponding write address this, then the write address parsed can mate with the allocation index in hotspot database by FPGA successively, judges whether this write address hits the allocation index in hot spot data; If when this write address hits the allocation index in hot spot data, now corresponding with this write address data are hot spot data, so this write operation is for covering write operation, FPGA directly can perform in this locality and write write operation corresponding to I/O request with this, the data of secondary for the basis be buffered in first internal memory of CPU write are saved in hotspot database, covering are carried out to legacy data corresponding with this write address in hot spot data and upgrades.Certainly, if the allocation index in the miss hotspot database of this write address, so this is write I/O request and is issued to disk array by FPGA, carries out tracking by the disk on disk array, and the data that will write are written in the disk of disk array.
Visible, in this way, FPGA process receive by CPU issue read I/O request and write I/O request time, if the allocation index in the address hit hotspot database parsed, so FPGA then will not read I/O request or write I/O request to be issued to disk array to carry out corresponding read-write operation, corresponding read-write operation directly can be performed in this locality, thus the read-write number of times that can reduce for disk in disk array, reduce the seek time produced because disk arm moves in disk array, improve the access speed of hot spot data.
In addition, for the data in hotspot database, FPGA can also carry out real-time renewal to the data in hotspot database and allocation index, by write back data sluggish in hotspot database to disk array according to the algorithm preset.Wherein, FPGA is when carrying out real-time renewal to the data in hotspot database, and the algorithm adopted is not particularly limited in this enforcement.
In a kind of algorithm shown in the present embodiment, FPGA can arrange a default duration, when the hot spot data in hotspot database is long-time not accessed, and continue the described default duration that not accessed lasting duration reaches setting, so now FPGA then can by this write back data of preserving in hotspot database to disk array, and deletes allocation index corresponding to this hot spot data of preserving in hotspot database.Such as, for the allocation index preserved in hotspot database, FPGA can record the time point that this allocation index was matched last time respectively, when the arbitrary allocation index preserved in hotspot database reaches described default duration apart from the duration of the time point be matched last time, show under-activity in this time period of this hot spot data, FPGA by this write back data to disk array, and can delete the allocation index of these data in hotspot database.Visible, in this way, can ensure that the data in hotspot database are active hot spot data in regular hour section.
Known by describing above, the application proposes a kind of mainboard framework of new storage server, and this mainboard framework comprises CPU, the data read-write module based on FPGA, internal memory; The described data read-write module based on FPGA is connected respectively with the disk array of described CPU and described storage server; Described internal memory is connected with the described data read-write module based on FPGA.CPU is when carrying out reading and writing data, data read-write module based on FPGA receives the read-write I/O request that CPU issues, carry out resolving to described read-write I/O request and obtain corresponding read/write address, and judge to get described read/write address and whether hit allocation index in the hotspot database preset in described internal memory; When the described read/write address got hits the allocation index in described default hotspot database, the described data read-write module based on FPGA performs the read-write operation corresponding with described read-write I/O request based on the hot spot data in described hotspot database in this locality.
Due in this mainboard framework, when the hot spot data read and write data in hit hotspot database that the read-write I/O request that CPU initiates is corresponding, the read-write operation corresponding with described read-write I/O request is completed according to based on the data in described hotspot database in its this locality by by the data read-write module based on FPGA, and do not need this read-write I/O request to be issued to disk array to perform corresponding read-write operation, therefore the read-write operation number of times of monolithic disk in disk array can effectively be reduced, save the tracking duration of disk, thus the acceleration of disk access can be realized, greatly improve the access speed of hot spot data, improve the overall readwrite performance of storage server.
Corresponding with said apparatus embodiment, present invention also provides the embodiment of method.
Refer to Fig. 3, the application proposes a kind of reading/writing method of data, is applied to storage server, and the mainboard of described storage server has the framework gone out as shown in Figure 2, comprises CPU, the data read-write module based on FPGA, internal memory; Wherein, the described data read-write module based on FPGA is connected respectively with the disk array of described CPU and described storage server; Described internal memory is connected with the described data read-write module based on FPGA.
When the described data read-write module based on FPGA is loaded with the read-write logic of setting, described method performs following steps:
Step 301, the data read-write module based on FPGA receives the read-write I/O request that described CPU issues, and carries out described read-write I/O request resolving the read/write address obtaining correspondence;
Step 302, based on FPGA data read-write module judge get described read/write address whether hit in described internal memory preset hotspot database in allocation index;
Step 303, when the described read/write address got hits the allocation index in described default hotspot database, the described data read-write module based on FPGA performs the read-write operation corresponding with described read-write I/O request based on the hot spot data in described hotspot database in this locality.
In the present embodiment, described step 303 specifically comprises:
When resolve that CPU issues read the allocation index read in the hotspot database preset described in address hit that I/O request gets time, the hot spot data corresponding with this allocation index is read in the hotspot database preset from described internal memory, and the hot spot data read is returned to CPU, to read the originating end main frame of I/O request described in this hot spot data sends to by CPU;
When resolving the allocation index write in the described default hotspot database of write address hit that I/O request gets that CPU issues, write write data corresponding to I/O request stored in described hotspot database by with this, hot spot data corresponding with this allocation index in described hotspot database is upgraded.
In the present embodiment, described step 302 specifically comprises:
Before judging to get the allocation index whether described read/write address hit in the hotspot database preset in described internal memory, add up for the data corresponding with the described read/write address number of times that conducts interviews;
Judge whether the access times counted reach threshold value;
When the access times of the arbitrary data counted reach threshold value, these data are kept in described default hotspot database as hot spot data, and in this hotspot database, create the corresponding relation between this data and allocation index of these data.
In the present embodiment, described step 302 comprises further:
When the lasting duration that arbitrary hot spot data in described default hotspot database is not read reaches preset duration, this hot spot data is written back to described disk array from described internal memory, and deletes in described default hotspot database the allocation index corresponding with this hot spot data preserved.
In the present embodiment, high-capacity flash memory is saved as in described.
Those skilled in the art, at consideration instructions and after putting into practice invention disclosed herein, will easily expect other embodiment of the application.The application is intended to contain any modification of the application, purposes or adaptations, and these modification, purposes or adaptations are followed the general principle of the application and comprised the undocumented common practise in the art of the application or conventional techniques means.Instructions and embodiment are only regarded as exemplary, and true scope and the spirit of the application are pointed out by claim below.
Should be understood that, the application is not limited to precision architecture described above and illustrated in the accompanying drawings, and can carry out various amendment and change not departing from its scope.The scope of the application is only limited by appended claim.
The foregoing is only the preferred embodiment of the application, not in order to limit the application, within all spirit in the application and principle, any amendment made, equivalent replacements, improvement etc., all should be included within scope that the application protects.

Claims (10)

1. a data read-write method, is applied to storage server, it is characterized in that, the mainboard of described storage server comprises CPU, the data read-write module based on FPGA, internal memory; The described data read-write module based on FPGA is connected respectively with the disk array of described CPU and described storage server; Described internal memory is connected with the described data read-write module based on FPGA; Described method comprises:
Steps A, the described data read-write module based on FPGA receive the read-write I/O request that described CPU issues, and carry out described read-write I/O request resolving the read/write address obtaining correspondence;
Step B, the described data read-write module based on FPGA judge get described read/write address whether hit in described internal memory preset hotspot database in allocation index;
Step C, when allocation index in the described default hotspot database of described read/write address hit got, the described data read-write module based on FPGA performs the read-write operation corresponding with described read-write I/O request based on the hot spot data in described hotspot database in this locality.
2. method according to claim 1, is characterized in that, described step C specifically comprises:
When resolve that CPU issues read the allocation index read in the hotspot database preset described in address hit that I/O request gets time, the hot spot data corresponding with this allocation index is read in the hotspot database preset from described internal memory, and the hot spot data read is returned to CPU, to read the originating end main frame of I/O request described in this hot spot data sends to by CPU;
When resolving the allocation index write in the described default hotspot database of write address hit that I/O request gets that CPU issues, write write data corresponding to I/O request stored in described hotspot database by with this, hot spot data corresponding with this allocation index in described hotspot database is upgraded.
3. method according to claim 1, is characterized in that, described step B specifically comprises:
Before judging to get the allocation index whether described read/write address hit in the hotspot database preset in described internal memory, add up for the data corresponding with the described read/write address number of times that conducts interviews;
Judge whether the access times counted reach threshold value;
When the access times of the arbitrary data counted reach threshold value, these data are kept in described default hotspot database as hot spot data, and in this hotspot database, create the corresponding relation between this data and allocation index of these data.
4. method according to claim 3, is characterized in that, described step B comprises further:
When the lasting duration that arbitrary hot spot data in described default hotspot database is not read reaches preset duration, this hot spot data is written back to described disk array from described internal memory, and deletes in described default hotspot database the allocation index corresponding with this hot spot data preserved.
5., according to the arbitrary described method of Claims 1 to 4, it is characterized in that, described internal memory comprises high-capacity flash memory.
6. a mainboard, is applied to storage server, it is characterized in that, described mainboard comprises CPU, the data read-write module based on FPGA, internal memory; Wherein, the described data read-write module based on FPGA is connected respectively with the disk array of described CPU and described storage server; Described internal memory is connected with the described data read-write module based on FPGA; Wherein:
The described data read-write module based on FPGA, for receiving the read-write I/O request that described CPU issues, and carries out described read-write I/O request resolving the read/write address obtaining correspondence;
The described data read-write module based on FPGA judges to get described read/write address further and whether hits allocation index in the hotspot database preset in described internal memory;
When the described read/write address got hits the allocation index in described default hotspot database, the described data read-write module based on FPGA is further used for performing the read-write operation corresponding with described read-write I/O request based on the hot spot data in described hotspot database in this locality.
7. mainboard according to claim 6, is characterized in that, the described data read-write module based on FPGA is further used for:
When resolve that CPU issues read the allocation index read in the hotspot database preset described in address hit that I/O request gets time, the hot spot data corresponding with this allocation index is read in the hotspot database preset from described internal memory, and the hot spot data read is returned to CPU, to read the originating end main frame of I/O request described in this hot spot data sends to by CPU;
When resolving the allocation index write in the described default hotspot database of write address hit that I/O request gets that CPU issues, write write data corresponding to I/O request stored in described hotspot database by with this, hot spot data corresponding with this allocation index in described hotspot database is upgraded.
8. mainboard according to claim 6, is characterized in that, the described data read-write module based on FPGA is further used for:
Before judging to get the allocation index whether described read/write address hit in the hotspot database preset in described internal memory, add up for the data corresponding with the described read/write address number of times that conducts interviews;
Judge whether the access times counted reach threshold value;
When the access times of the arbitrary data counted reach threshold value, these data are kept in described default hotspot database as hot spot data, and in this hotspot database, create the corresponding relation between this data and allocation index of these data.
9. mainboard according to claim 8, is characterized in that, the described data read-write module based on FPGA is further used for:
When the lasting duration that arbitrary hot spot data in described default hotspot database is not read reaches preset duration, this hot spot data is written back to described disk array from described internal memory, and deletes in described default hotspot database the allocation index corresponding with this hot spot data preserved.
10., according to the arbitrary described mainboard of claim 6 ~ 9, it is characterized in that, described internal memory comprises high-capacity flash memory.
CN201510542803.4A 2015-08-28 2015-08-28 A kind of data read-write method and mainboard Active CN105183374B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510542803.4A CN105183374B (en) 2015-08-28 2015-08-28 A kind of data read-write method and mainboard

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510542803.4A CN105183374B (en) 2015-08-28 2015-08-28 A kind of data read-write method and mainboard

Publications (2)

Publication Number Publication Date
CN105183374A true CN105183374A (en) 2015-12-23
CN105183374B CN105183374B (en) 2018-04-06

Family

ID=54905483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510542803.4A Active CN105183374B (en) 2015-08-28 2015-08-28 A kind of data read-write method and mainboard

Country Status (1)

Country Link
CN (1) CN105183374B (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649654A (en) * 2016-12-12 2017-05-10 京信通信技术(广州)有限公司 Data updating method and device
CN106990916A (en) * 2017-03-01 2017-07-28 北京腾凌科技有限公司 A kind of processing method and processing device of read-write requests
CN107451070A (en) * 2016-06-01 2017-12-08 腾讯科技(深圳)有限公司 The processing method and server of a kind of data
CN107579936A (en) * 2017-09-11 2018-01-12 北京腾凌科技有限公司 Message transmitting method, controller and storage system
CN108595269A (en) * 2018-04-26 2018-09-28 北京腾凌科技有限公司 A kind of data processing method, command generating device and data read-write equipment
CN113986133A (en) * 2021-10-27 2022-01-28 北京达佳互联信息技术有限公司 Data processing method and device, data storage system and electronic equipment
CN115098045A (en) * 2022-08-23 2022-09-23 成都止观互娱科技有限公司 Data storage system and network data reading and writing method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088514A1 (en) * 2002-10-31 2004-05-06 Bullen Melvin James Methods and systems for a storage system including an improved switch
US20080010431A1 (en) * 2006-07-07 2008-01-10 Chi-Tung Chang Memory storage device and read/write method thereof
CN101510219A (en) * 2009-03-31 2009-08-19 成都市华为赛门铁克科技有限公司 File data accessing method, apparatus and system
CN101839974A (en) * 2010-05-05 2010-09-22 北京航空航天大学 Dual-interface radar data recorder
CN102870100A (en) * 2012-06-30 2013-01-09 华为技术有限公司 Data buffer device, data storage system and method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088514A1 (en) * 2002-10-31 2004-05-06 Bullen Melvin James Methods and systems for a storage system including an improved switch
US20080010431A1 (en) * 2006-07-07 2008-01-10 Chi-Tung Chang Memory storage device and read/write method thereof
CN101510219A (en) * 2009-03-31 2009-08-19 成都市华为赛门铁克科技有限公司 File data accessing method, apparatus and system
CN101839974A (en) * 2010-05-05 2010-09-22 北京航空航天大学 Dual-interface radar data recorder
CN102870100A (en) * 2012-06-30 2013-01-09 华为技术有限公司 Data buffer device, data storage system and method

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451070A (en) * 2016-06-01 2017-12-08 腾讯科技(深圳)有限公司 The processing method and server of a kind of data
CN107451070B (en) * 2016-06-01 2020-08-04 腾讯科技(深圳)有限公司 Data processing method and server
CN106649654A (en) * 2016-12-12 2017-05-10 京信通信技术(广州)有限公司 Data updating method and device
CN106990916A (en) * 2017-03-01 2017-07-28 北京腾凌科技有限公司 A kind of processing method and processing device of read-write requests
CN106990916B (en) * 2017-03-01 2020-04-07 北京腾凌科技有限公司 Method and device for processing read-write request
CN107579936A (en) * 2017-09-11 2018-01-12 北京腾凌科技有限公司 Message transmitting method, controller and storage system
CN108595269A (en) * 2018-04-26 2018-09-28 北京腾凌科技有限公司 A kind of data processing method, command generating device and data read-write equipment
CN108595269B (en) * 2018-04-26 2020-10-09 北京腾凌科技有限公司 Data processing method, instruction generation device and data read-write device
CN113986133A (en) * 2021-10-27 2022-01-28 北京达佳互联信息技术有限公司 Data processing method and device, data storage system and electronic equipment
CN115098045A (en) * 2022-08-23 2022-09-23 成都止观互娱科技有限公司 Data storage system and network data reading and writing method
CN115098045B (en) * 2022-08-23 2022-11-25 成都止观互娱科技有限公司 Data storage system and network data reading and writing method

Also Published As

Publication number Publication date
CN105183374B (en) 2018-04-06

Similar Documents

Publication Publication Date Title
CN105183374B (en) A kind of data read-write method and mainboard
EP1960888B1 (en) Optimizing write and wear performance for a memory
CN105138469A (en) Data reading and writing method and main board
US10564880B2 (en) Data deduplication method and apparatus
US9128855B1 (en) Flash cache partitioning
US9348747B2 (en) Solid state memory command queue in hybrid device
WO2017148242A1 (en) Method for accessing shingled magnetic recording (smr) hard disk, and server
WO2017063495A1 (en) Data migration method and apparatus
CN104267912A (en) NAS (Network Attached Storage) accelerating method and system
US10296236B2 (en) Offloading device management responsibilities from a storage device in an array of storage devices
CN107203480B (en) Data prefetching method and device
US20240104014A1 (en) Data management method, and storage space management method and apparatus
US10628048B2 (en) Storage control device for controlling write access from host device to memory device
CN116301669B (en) High-speed storage system partitioning method and system based on FPGA
CN115079936A (en) Data writing method and device
US8140804B1 (en) Systems and methods for determining whether to perform a computing operation that is optimized for a specific storage-device-technology type
CN115639971B (en) Data writing method, data writing device, electronic device, storage medium, and program product
CN103064926B (en) Data processing method and device
US11360687B2 (en) Method of processing a input-output request, an electronic device, and a computer program product
US6950905B2 (en) Write posting memory interface with block-based read-ahead mechanism
CN105205017A (en) Storage controller based on PCIE SSD
CN103064803B (en) A kind of data read-write method of NAND Flash storage device and device
CN105827681A (en) Backup data transmission method under SAN (Storage Area Network)
CN104461394A (en) RAID (redundant array of independent disk) and method for reading data from same
CN114023367B (en) Hard disk pressure test method, system, terminal and storage medium

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant