WO2017002157A1 - 計算機システム及び計算機システムの制御方法 - Google Patents
計算機システム及び計算機システムの制御方法 Download PDFInfo
- Publication number
- WO2017002157A1 WO2017002157A1 PCT/JP2015/068646 JP2015068646W WO2017002157A1 WO 2017002157 A1 WO2017002157 A1 WO 2017002157A1 JP 2015068646 W JP2015068646 W JP 2015068646W WO 2017002157 A1 WO2017002157 A1 WO 2017002157A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- command
- fpga
- computer system
- soft error
- calculation
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Definitions
- the present invention relates to a computer system having an accelerator using FPGA.
- Patent Document 1 a device including an FPGA is added to a computer, and data processing is executed by the device.
- Non-Patent Document 1 FPGA vendors provide soft error detection and correction functions.
- the FPGA is divided into small areas called frames, and an error detection code (CRC) for each frame is calculated in advance. Then, the FPGA check function determines whether or not there is an error in the corresponding frame using the CRC, and if there is an error, transmits an error signal to the outside of the FPGA.
- Patent Document 2 discloses a storage control device characterized in that when the detection unit detects a soft error, the communication control unit changes the state of the communication path between the communication device and the host device to the busy state. Yes.
- Non-Patent Document 1 it takes a time from several ms to several seconds to check the soft error of the FPGA. Therefore, when data processing is executed by the FPGA, there is a problem that if a soft error check is performed every time a command is executed, the time required for the soft error check increases. In addition, if an error check of the entire FPGA circuit is performed, the time required for the error check increases.
- the present invention has been made in view of the above problems, and an object thereof is to suppress an increase in processing time when data processing is executed by an FPGA while performing a soft error check.
- the present invention is a computer system having a computer having a processor and a memory, and a storage device connected to the computer for storing data, the storage device having a nonvolatile semiconductor memory, A non-volatile semiconductor storage unit that stores data, a control unit that controls reading and writing to the non-volatile semiconductor storage unit, and obtains the data and operation command from the control unit, and calculates the data according to the operation command
- An FPGA for performing the processing wherein the computer transmits a reception command for receiving an access request to the data, a command generation unit for generating one or more calculation commands from the access request, and the calculation command to the storage device.
- a command transmission unit that performs the calculation, and a calculation result that receives the execution result of the calculation command from the storage device
- a communication unit an aggregation unit for aggregating the execution results of the arithmetic commands, a response unit for responding to the execution results of the aggregated arithmetic commands, and an FPGA check unit for detecting a soft error of the FPGA,
- the FPGA check unit instructs the FPGA to detect a soft error, receives the presence or absence of a soft error from the FPGA, and the response unit generates the generated operation
- the aggregated execution results are transmitted.
- the computer performs the FPGA soft error detection process after issuing a plurality of commands to the storage device including the FPGA, so that it is compared with the case where the soft error check is executed for each command.
- the time required for detecting the soft error can be shortened.
- the computer executes the soft error detection process only for the FPGA area used in the issued command, the time required for the soft error detection process can be shortened.
- FIG. 1 is a block diagram illustrating an example of a computer system according to a first embodiment of this invention.
- FIG. It is a block diagram which shows a 1st Example of this invention and shows an example of the function of DBMS. It is a figure which shows the 1st Example of this invention and shows an example of a frame management table. It is a figure which shows the 1st Example of this invention and shows an example of the flame
- FIG. 1 is a block diagram showing an example of a computer system according to the first embodiment of this invention.
- FIG. 1 shows an example in which a flash module 150 including a storage device function and an accelerator function is added to a server 100 that executes a database management system (DBMS) 200.
- DBMS database management system
- the flash module 150 of this embodiment includes a plurality of flash memories 180-1 to 180-n for storing the database 250, and a database operation circuit 170 as a hardware accelerator capable of executing database processing.
- the server 100 includes a CPU 101 and a memory 102, and is connected to the flash module 150 via a PCI express (PCIe in the figure) switch 140.
- the flash module 150 is composed of one or more flash memories 180-1 to 180-n, a flash module controller 160 that controls a semiconductor storage unit including the flash memories 180-1 to 180-n, and an FPGA, and a predetermined database. And a database operation circuit 170 for executing processing.
- the database 250 is stored in the flash memory 180 of the flash module 150.
- the program of the DBMS 200 is loaded into the memory 102 and is executed by the CPU 101.
- the database 250 is managed by the DBMS 200 of the server 100.
- the program of the DBMS 200 may be stored in a storage device (not shown) connected to the server 100.
- the DBMS 200 operating on the server 100 accepts an access request (SQL sentence) for the database 250 from the client computer 300 connected via the network 400.
- an access request SQL sentence
- the DBMS 200 receives a predetermined access request such as a search request (filter processing)
- the DBMS 200 generates a plurality of database operation commands and instructs the database operation circuit 170 to perform database processing.
- the flash module controller 160 can access the flash memories 180-1 to 180-n in parallel. When a plurality of database operation commands are instructed, the flash module controller 160 reads the database 250 from the flash memory 180 in parallel, It can be transmitted to the database arithmetic circuit 170.
- the database operation circuit 170 can execute database operation commands in parallel with a predetermined degree of parallelism.
- the database operation circuit 170 can execute a plurality of database operation commands on the data of the database 250 received from the flash module controller 160 in parallel.
- the database operation circuit 170 including the FPGA has the soft error detection function and the correction function described in Non-Patent Document 1.
- the server 100 executes soft error detection each time the number of database operation commands issued to the database operation circuit 170 reaches a predetermined number.
- the server 100 transmits information indicating that a soft error has occurred to the client computer 300.
- FIG. 2 is a block diagram showing an example of the function of the DBMS 200.
- the DBMS 200 includes an SQL receiving unit 203 that receives the SQL of the access request, a database (DB in the figure) operation command generating unit 204 that generates one or more database operation commands from the SQL, and the generated database operation command to the flash module 150.
- SQL receiving unit 203 that receives the SQL of the access request
- database (DB in the figure) operation command generating unit 204 that generates one or more database operation commands from the SQL, and the generated database operation command to the flash module 150.
- DB operation command transmission unit 205 for transmitting, DB operation result receiving unit 208 for receiving the execution result of the database operation command from the flash module 150, and DB for collecting the execution results of one or more database operation commands received from the flash module 150
- An operation command aggregating unit 207, an SQL response unit 206 for transmitting the execution result of the aggregated database operation command to the client computer 300, and a database operation circuit 170 configured by FPGA are detected for soft errors.
- An FPGA check unit 209 for instructing the frame, a frame management table 210 for managing the frame number which is an arithmetic element of the FPGA included in the database arithmetic circuit 170 used in the database arithmetic command, and a database arithmetic command used in SQL A command management table 220.
- the calculation element that can be programmed (set) by the FPGA of the database calculation circuit 170 is a frame.
- the calculation element may be changed according to the type of the FPGA. If it is an element, a logic element number can be used instead of a frame number.
- the frame number may be an identifier of an arithmetic element that can be programmed in the FPGA.
- the DB operation command generating unit 204 divides the access target area of the database 250 into a plurality of areas, Generate database operation commands.
- the access target area of the received SQL is divided into 8 MB areas and database operation commands are respectively generated.
- the DB operation command transmission unit 205 issues a plurality of database operation commands to the database operation circuit 170.
- the update request for the database 250 is executed when the DBMS 200 instructs the flash module controller 160 to update the database 250.
- the database operation circuit 170 When receiving the database operation command, the database operation circuit 170 requests the flash module controller 160 to read data in the data area described in the database operation command.
- the flash module controller 160 reads the requested data from the flash memory 180 and transmits it to the database operation circuit 170.
- the database operation circuit 170 performs data processing using a predetermined database operation command (filter processing, aggregation operation processing, etc.) on the received data, and transmits the execution result to the DB operation result receiving unit 208.
- the flash module controller 160 accesses the flash memories 180-1 to 180-n in parallel. Further, the database operation circuit 170 executes a database operation command for each data received with a preset parallelism.
- the DBMS 200 receives the result of the database operation command executed by the database operation circuit 170 with a predetermined parallelism at the DB operation result receiving unit 208.
- the execution results of the plurality of database operation commands received by the DB operation result receiving unit 208 are collected by the DB operation command aggregation unit 207.
- the SQL response unit 206 activates the FPGA check unit 209 when aggregation of the DB operation command aggregation unit 207 is completed for all database operation commands generated by the DB operation command generation unit 204.
- the FPGA check unit 209 refers to the command management table 220 and the frame management table 210, and identifies the frame number used in the database operation circuit 170 based on the contents of the database operation command. Then, the FPGA check unit 209 detects a soft error only for the frame used in the database calculation command in the FPGA of the database calculation circuit 170.
- the FPGA check unit 209 transmits the soft error detection result to the SQL response unit 206. If no soft error has occurred, the SQL response unit 206 transmits the aggregation result of the DB operation command aggregation unit 207 to the client computer 300. On the other hand, if the soft error has occurred in the FPGA, the SQL response unit 206 transmits information indicating that the soft error has occurred to the client computer 300.
- the DBMS 200 generates a plurality of database operation commands from the received access request and causes the FPGA of the database operation circuit 170 to execute them. Then, after all the database operation commands corresponding to the SQL of the access request are completed, the FPGA check unit 209 detects the FPGA soft error in the database operation circuit 170.
- the DBMS 200 does not detect a soft error each time a plurality of database operation commands are executed, and detects a soft error when the number of database operation commands reaches a predetermined number (all in this embodiment). Conduct collectively. As a result, the processing time required to detect a soft error when execution of each database operation command is completed can be suppressed, and the processing of the database operation circuit 170 having the FPGA can be performed at high speed.
- the DBMS 200 specifies the frame number of the FPGA constituting the database operation circuit 170 according to the contents of the database operation command, and detects the soft error only for the specified frame, and thus detects the soft error of the entire FPGA. Compared to the above, the processing time can be shortened, and the database operation can be speeded up.
- Each functional unit constituting the program is loaded into the memory 102 as a program.
- the CPU 101 operates as a functional unit that provides a predetermined function by performing processing according to the program of each functional unit.
- the CPU 101 functions as the DBMS 200 by performing processing according to the DBMS program.
- the CPU 101 also operates as a function unit that provides each function of a plurality of processes executed by each program.
- a computer and a computer system are an apparatus and a system including these functional units.
- FIG. 3 is a diagram illustrating an example of the frame management table 210 of the DBMS 200.
- the frame management table 210 includes, in one entry, a DB operation command name 211 that stores the name of the database operation command and a frame number 212 that stores the frame number of the FPGA constituting the database operation circuit 170.
- the filter command used in SQL uses “1, 2, 3, 100, 102” among the frame numbers of the FPGA constituting the database arithmetic circuit 170.
- FIG. 4 is a diagram illustrating an example of an FPGA frame of the database operation circuit 170.
- the FPGA of the database operation circuit 170 has programmable areas of frames 230-1 to 230-m, and the frame numbers are “1” to “m”.
- the administrator of the server 100 determines the frame number to be used for each database operation command name 211 and sets the FPGA function.
- FIG. 5 is a diagram illustrating an example of the command management table 220 of the DBMS 200.
- the command management table 220 includes, in one entry, a SQL number 221 that stores the received SQL serial number and a DB operation command name 222 that stores the name (or identifier) of the database operation command included in the SQL.
- the SQL receiving unit 203 When receiving the SQL as the access request, the SQL receiving unit 203 assigns a predetermined number to the SQL, adds an entry to the command management table 220, and sets the name of the database operation command included in the SQL as the DB operation command name. 222 is stored.
- the command management table 220 can specify a database operation command used by SQL executed by the server 100.
- FIG. 6 is a diagram showing an example of a database operation command 500 issued by the DBMS 200 to the database operation circuit 170.
- the database operation command 500 shows an example in which the command name 501 is “filter command”.
- the start LBA (Logical Block Address) 502 “1000” indicating the read start position
- the end LBA 503 “2000” indicating the read end position
- the filter condition 504 X
- a set example is shown.
- the DB operation command generation unit 204 generates a plurality of database operation commands 500 in order to execute the received SQL.
- the filter condition 504 and the column extraction condition 505 are parameters for determining processing to be performed by the database arithmetic circuit 170.
- the DB operation command generation unit 204 generates a database operation command 500 for each area such as 8 MB in order to execute the SQL. Therefore, a plurality of database operation commands 500 are generated for one SQL.
- the DB operation command generation unit 204 stores the SQL number and the name of the database operation command 500 used for executing the SQL in the command management table 220.
- the DB calculation command transmission unit 205 transmits the generated plurality of database calculation commands 500 to the flash module 150.
- FIG. 7 is a flowchart illustrating an example of processing performed in the server 100. This process is executed when the DBMS 200 receives an access request to the database 250.
- the DBMS 200 receives SQL as an access request of the client computer 300 from the network 400 (S1).
- the DBMS 200 generates one or more database operation commands 500 from the SQL (S2).
- the DBMS 200 transmits the generated database operation command 500 to the flash module 150 (S3).
- the flash module controller 160 reads data corresponding to the database operation command from the database 250 in the flash memory 180 and transmits the data and the database operation command 500 to the database operation circuit 170.
- the database operation circuit 170 executes the database operation command 500 on the received data and transmits the result to the DBMS 200.
- the DBMS 200 receives the execution result of the database operation command 500 from the flash module 150 (S4). Next, the DBMS 200 determines whether or not execution results have been received for all database operation commands 500 corresponding to SQL (S5). If the DBMS 200 has received all the execution results of the database operation command 500 corresponding to SQL, the DBMS 200 proceeds to step S6. On the other hand, if there is a database operation command 500 that has not yet been received, the process returns to step S4.
- step S6 the DBMS 200 refers to the command management table 220 and acquires the DB operation command name 222 corresponding to the currently executed SQL number 221. Then, the DBMS 200 acquires a frame number 212 corresponding to the DB operation command name 211 acquired from the frame management table 210. The DBMS 200 instructs the database operation circuit 170 of the flash module 150 to specify the acquired frame number 212 (operation element identifier) and perform soft error detection.
- the DBMS 200 When the DBMS 200 receives the detection result of the soft error from the database arithmetic circuit 170 (S7), the DBMS 200 determines the presence or absence of the soft error (S8). If a soft error has not occurred, the DBMS 200 proceeds to step S9, transmits the execution result of the database operation command to which the above-described aggregation processing is applied, to the client computer 300, and ends the processing.
- step S10 the DBMS 200 proceeds to step S10, notifies the client computer 300 that a soft error has occurred in the FPGA of the database operation circuit 170, and ends the process. In this case, the DBMS 200 discards the execution result of the database operation command received from the flash module 150.
- the DBMS 200 of the server 100 executes FPGA soft error detection processing after executing all of the plurality of database operation commands 500, and therefore executes soft error detection for each database operation command. Compared with the case where it does, it becomes possible to shorten the time required for detection of a soft error. As a result, the server 100 can suppress an increase in processing time when executing data processing with the FPGA while detecting a soft error.
- the server 100 executes soft error detection only for the FPGA area (frame number) used in the database operation command, it is possible to reduce the time required for soft error detection, and the flash module.
- the processing performance of 150 can be improved.
- the database arithmetic circuit 170 is arranged inside the flash module 150.
- the database arithmetic circuit 170 can be made independent as a PCIe device and connected to the PCIe switch 140.
- the flash memory 180 is used as the flash module 150.
- the present invention is not limited to this, and any nonvolatile semiconductor memory device that stores the database 250 may be used.
- FIG. 8 is a flowchart illustrating an example of processing performed by the server 100 according to the second embodiment of this invention.
- the database operation circuit 170 has a repair function for correcting an FPGA soft error.
- the server 100 detects a soft error, the server 100 instructs the database operation circuit 170 to repair the FPGA. Then, after the repair is completed, the server 100 executes the database operation command again.
- Other configurations are the same as those of the first embodiment.
- Steps S1 to S9 in FIG. 8 are the same as those in FIG.
- the DBMS 200 issues an FPGA repair command to the database operation circuit 170.
- the DBMS 200 When the DBMS 200 receives the notification of the completion of execution of the repair command from the database operation circuit 170, the DBMS 200 returns to step S3 and causes the database operation circuit 170 to execute a plurality of database operation commands again.
- the DBMS 200 can issue the repair command and then execute the database operation command again. As a result, it is possible to continue the business by executing the database operation after recovering from the failure caused by the soft error in the database operation circuit 170.
- step S20 the DBMS 200 has received the notification of the completion of the execution of the repair command from the database arithmetic circuit 170. However, the DBMS 200 returns to step S3 after a predetermined time has elapsed after issuing the repair command. May be.
- FIG. 9 is a flowchart illustrating an example of processing performed by the server 100 according to the third embodiment of this invention.
- the third embodiment when a large amount of data is included in an access request to the database 250, when the database operation command has been executed up to a predetermined number, the soft error of the database operation circuit 170 is detected.
- Other configurations are the same as those of the first embodiment.
- Steps S31 and S32 are the same as steps S1 and S2 in FIG. 7, and the DBMS 200 receives the SQL as an access request from the client computer 300, and generates one or more database operation commands 500 from the SQL.
- the DBMS 200 issues the generated database operation command 500 to the flash module 150.
- the flash module controller 160 reads data corresponding to the database operation command from the database 250 of the flash memory 180 and transmits it to the database operation circuit 170.
- the database operation circuit 170 executes the database operation command 500 on the received data and transmits the result to the DBMS 200.
- the DBMS 200 receives the execution result of the database operation command 500 from the flash module 150 (S34).
- the DBMS 200 determines whether or not the number CNT of database operation commands 500 that have been executed by the flash module 150 has reached a predetermined value (for example, 100).
- the DBMS 200 proceeds to step S35 if the number CNT of database operation commands 500 that have been executed has reached a predetermined value, and proceeds to step S39 if the number CNT of database operation commands 500 that have been executed has not been reached.
- step S351 similar to step S6 in FIG. 7 of the first embodiment, the DBMS 200 detects a soft error in units of FPGA frames.
- the DBMS 200 resets the number CNT of the database operation commands 500 that have been executed to 0 (S36), and receives the detection result of the soft error from the database operation circuit 170 (S37). Then, the DBMS 200 determines the presence or absence of a soft error from the detection result (S38). If a soft error has occurred, the DBMS 200 proceeds to step S42, and if no soft error has occurred, the DBMS 200 proceeds to step S399.
- step S42 where a soft error has occurred, as in the second embodiment, the DBMS 200 issues a repair command to the database operation circuit 170, returns to step 33, and issues a database operation command again.
- step S39 it is determined whether all execution results of the generated database operation command have been received. If the DBMS 200 has received all execution results of the database operation command 500 corresponding to SQL, the DBMS 200 proceeds to step S40. On the other hand, if there is a database operation command 500 that has not yet been received, the process returns to step S33 to issue the remaining database operation commands.
- step S40 if the variable CNT indicating the number of executed database operation commands is greater than 0, there is an execution result for which soft error detection has not been completed, so the DBMS 200 returns to step 35 and returns the soft error. Repeat the detection process.
- the DBMS 200 aggregates all execution results and transmits them to the client computer 300 (S41).
- the DBMS 200 executes the FPGA soft error detection processing of the database operation circuit 170 each time the number of executions of the database operation command reaches a predetermined value, and if a soft error has occurred, the repair command Issue the database operation command again after issuing.
- the FPGA soft error detection process is executed every time the execution number CNT of the database operation commands reaches a predetermined value. 170 enables efficient processing. That is, if a soft error has been detected after completion of all database operation commands and a soft error has occurred, processing time will increase if all database operation commands are executed again.
- the DBMS 200 executes the soft error detection process every time the execution number CNT of the database operation command reaches a predetermined value, so that the amount of re-execution of the database operation command after the soft error occurs can be reduced. It is possible to shorten the overall processing time when a soft error occurs.
- FIG. 10 is a block diagram showing an example of a computer system according to the fourth embodiment of the present invention.
- the fourth embodiment shows an example in which the file search service 260 is provided to the client computer 300 in place of the DBMS 200 shown in the first embodiment.
- one or more files 270 are stored in the flash memory 180 of the flash module 150 in place of the database 250 in the first embodiment, and a file search circuit 190 configured by FPGA is used in place of the database operation circuit 170. It is incorporated in the flash module 150.
- the file search service 260 is stored in the memory 102 of the server 100 in place of the DBMS 200 of the first embodiment.
- the file search service 260 receives a search target character string from the client computer 300, selects a file 270 including the search target character string from the flash memory 180, and notifies the client computer 300 of the file.
- the file search service 260 generates a plurality of search commands from the search target character string and issues them to the flash module 150 in the same manner as the DBMS 200 of the first embodiment.
- the flash module controller 160 acquires data specified by a plurality of search commands from the file 270 and transmits the data to the file search circuit 190.
- the file search circuit 190 executes a plurality of search commands for the received data, and transmits the search command execution results to the server 100.
- the file search service 260 of the server 100 executes a soft error detection process in the file search circuit 190 when execution of all search commands is completed. If no soft error has occurred, the search command execution results are aggregated in the same manner as in the first embodiment, and then the client computer 300 is responded.
- the file search service 260 if a soft error has occurred, notifies the client computer 300 that a soft error has occurred as in the first embodiment.
- the file search service 260 issues an FPGA repair command to the file search circuit 190 and then executes the search command again.
- the FPGA soft error detection is performed after all of the plurality of search commands are executed. Therefore, the soft error is detected as compared with the case where the soft error detection is executed for each database operation command. It is possible to shorten the time required for detection of. As a result, it is possible to suppress an increase in processing time when executing data processing in the FPGA while detecting soft errors.
- the soft error detection can be performed only on the FPGA area (frame number) used in the search command, thereby shortening the time required for the soft error detection.
- the processing performance of the flash module 150 can be improved.
- the present invention is applied to the database 250
- the present invention is applied to the file search service 260
- the present invention can be applied to an FPGA that processes data read from 180.
- each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
- each of the above-described configurations, functions, and the like may be realized by software by the processor interpreting and executing a program that realizes each function.
- Information such as programs, tables, and files that realize each function can be stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
- control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
Description
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
Claims (12)
- プロセッサとメモリとを有する計算機と、
前記計算機に接続されてデータを格納するストレージ装置と、を有する計算機システムであって、
前記ストレージ装置は、
不揮発性半導体メモリを有して、データを格納する不揮発性半導体記憶部と、
前記不揮発性半導体記憶部に対する読み書きを制御する制御部と、
前記制御部から前記データと演算コマンドを取得して、前記演算コマンドに応じて前記データの演算を行うFPGAと、を有し、
前記計算機は、
前記データへのアクセス要求を受け付ける受信部と、
前記アクセス要求から1以上の演算コマンドを生成するコマンド生成部と、
前記ストレージ装置に前記演算コマンドを送信するコマンド送信部と、
前記ストレージ装置から前記演算コマンドの実行結果を受信する演算結果受信部と、
前記演算コマンドの実行結果を集約する集約部と、
前記集約した演算コマンドの実行結果を応答する応答部と、
前記FPGAのソフトエラーを検出するFPGAチェック部と、を有し、
前記FPGAチェック部は、
前記演算コマンドの実行結果の数が所定値になると、前記FPGAにソフトエラーの検出を指令し、前記FPGAからソフトエラーの有無を受信し、
前記応答部は、
前記生成した演算コマンドに対する全ての実行結果を受信し、かつ、前記ソフトエラーが無い場合には前記集約した実行結果を送信することを特徴とする計算機システム。 - 請求項1に記載の計算機システムであって、
前記不揮発性半導体記憶部のデータはデータベースであって、
前記アクセス要求は、前記データベースに対するSQLを含み、
前記コマンド生成部は、前記SQLに対応する1以上の演算コマンドを生成することを特徴とする計算機システム。 - 請求項2に記載の計算機システムであって、
前記計算機は、
前記SQLで使用する演算コマンドを格納するコマンド管理情報と、
前記FPGAに設定された演算コマンドを実行する演算要素の識別子を格納するフレーム管理情報と、を有し、
前記FPGAチェック部は、
前記演算コマンドで実行された前記FPGAの演算要素の識別子を指定してソフトエラーの検出を指令することを特徴とする計算機システム。 - 請求項1に記載の計算機システムであって、
前記FPGAチェック部は、
前記FPGAからソフトエラーを検出した場合には、当該FPGAに修復コマンドを発行することを特徴とする計算機システム。 - 請求項4に記載の計算機システムであって、
前記コマンド送信部は、前記FPGAが修復コマンドを完了した後に、再度前記生成した演算コマンドを前記ストレージ装置に送信することを特徴とする計算機システム。 - 請求項1に記載の計算機システムであって、
前記所定値は、前記コマンド生成部が生成した演算コマンドの数であって、
前記FPGAチェック部は、
前記演算コマンドが全て完了した後に、前記FPGAにソフトエラーの検出を指令する
ことを特徴とする計算機システム。 - プロセッサとメモリとを有する計算機と、前記計算機に接続されてデータを格納するストレージ装置と、を制御する計算機システムの制御方法であって、
前記ストレージ装置は、
不揮発性半導体メモリを有して、データを格納する不揮発性半導体記憶部と、
前記不揮発性半導体記憶部に対する読み書きを制御する制御部と、
前記制御部から前記データと演算コマンドを取得して、前記演算コマンドに応じて前記データの演算を行うFPGAと、を有し、
前記制御方法は、
前記計算機が、前記データへのアクセス要求を受け付ける第1のステップと、
前記計算機が、前記アクセス要求から1以上の演算コマンドを生成する第2のステップと、
前記計算機が、前記ストレージ装置に前記演算コマンドを送信する第3のステップと、
前記計算機が、前記ストレージ装置から前記演算コマンドの実行結果を受信する第4のステップと、
前記計算機が、前記演算コマンドの実行結果を集約する第5のステップと、
前記計算機が、前記演算コマンドの実行結果の数が所定値になると、前記FPGAにソフトエラーの検出を指令し、前記FPGAからソフトエラーの有無を受信する第6のステップと、
前記計算機が、前記生成した演算コマンドに対する全ての実行結果を受信し、かつ、前記ソフトエラーが無い場合には前記集約した実行結果を送信する第7のステップと、
を含むことを特徴とする計算機システムの制御方法。 - 請求項7に記載の計算機システムの制御方法であって、
前記不揮発性半導体記憶部のデータはデータベースであって、
前記アクセス要求は、前記データベースに対するSQLを含み、
前記第2のステップは、前記SQLに対応する1以上の演算コマンドを生成することを特徴とする計算機システムの制御方法。 - 請求項8に記載の計算機システムの制御方法であって、
前記第6のステップは、
前記SQLで使用する演算コマンドを格納するコマンド管理情報と、前記FPGAに設定された演算コマンドを実行する演算要素の識別子を格納するフレーム管理情報と、から前記演算コマンドで実行された前記FPGAの演算要素の識別子を指定してソフトエラーの検出を指令することを特徴とする計算機システムの制御方法。 - 請求項7に記載の計算機システムの制御方法であって、
前記第6のステップは、
前記FPGAからソフトエラーを検出した場合には、当該FPGAに修復コマンドを発行することを特徴とする計算機システムの制御方法。 - 請求項10に記載の計算機システムの制御方法であって、
前記第3のステップは、
前記FPGAが修復コマンドを完了した後に、再度前記生成した演算コマンドを前記ストレージ装置に送信することを特徴とする計算機システムの制御方法。 - 請求項7に記載の計算機システムの制御方法であって、
前記所定値は、前記第2のステップで生成した演算コマンドの数であって、
前記第6のステップは、
前記演算コマンドが全て完了した後に、前記FPGAにソフトエラーの検出を指令する
ことを特徴とする計算機システムの制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/571,050 US10353768B2 (en) | 2015-06-29 | 2015-06-29 | Computer system and computer system control method |
JP2017525695A JP6359190B2 (ja) | 2015-06-29 | 2015-06-29 | 計算機システム及び計算機システムの制御方法 |
PCT/JP2015/068646 WO2017002157A1 (ja) | 2015-06-29 | 2015-06-29 | 計算機システム及び計算機システムの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/068646 WO2017002157A1 (ja) | 2015-06-29 | 2015-06-29 | 計算機システム及び計算機システムの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017002157A1 true WO2017002157A1 (ja) | 2017-01-05 |
Family
ID=57609310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/068646 WO2017002157A1 (ja) | 2015-06-29 | 2015-06-29 | 計算機システム及び計算機システムの制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10353768B2 (ja) |
JP (1) | JP6359190B2 (ja) |
WO (1) | WO2017002157A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019144907A (ja) * | 2018-02-21 | 2019-08-29 | 日立オートモティブシステムズ株式会社 | 電子制御装置、構成メモリのエラー検出方法 |
JP2020524853A (ja) * | 2017-06-23 | 2020-08-20 | ザイリンクス インコーポレイテッドXilinx Incorporated | データベースアクセラレータに対する並列計算オフロード |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017095435A1 (en) * | 2015-12-04 | 2017-06-08 | Hewlett Packard Enterprise Development Lp | Combining hashes of data blocks |
WO2017119098A1 (ja) * | 2016-01-07 | 2017-07-13 | 株式会社日立製作所 | 計算機システム及び計算機の制御方法 |
CN109726153B (zh) * | 2017-10-27 | 2023-02-24 | 伊姆西Ip控股有限责任公司 | 用于存储设备的集成装置、相应存储设备及其制造方法 |
CN110309336B (zh) * | 2018-03-12 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 图像检索方法、装置、系统、服务器以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007199851A (ja) * | 2006-01-24 | 2007-08-09 | Nippon Telegr & Teleph Corp <Ntt> | 避難行動支援システムとそのサーバ装置 |
JP2008500604A (ja) * | 2003-10-15 | 2008-01-10 | カルポント コーポレイション | ハードウェアデータベース管理システム用アーキテクチャ |
JP2014071576A (ja) * | 2012-09-28 | 2014-04-21 | Fujitsu Ltd | ストレージ制御装置,プログラマブル論理回路の復旧処理方法及び制御プログラム |
WO2015068285A1 (ja) * | 2013-11-08 | 2015-05-14 | 株式会社日立製作所 | プログラマブルデバイス及びこれを用いた電子システム装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8095508B2 (en) | 2000-04-07 | 2012-01-10 | Washington University | Intelligent data storage and processing using FPGA devices |
JP2008108227A (ja) * | 2006-09-25 | 2008-05-08 | Hitachi Ltd | ストレージシステム及び監査ログ管理方法 |
JP5729746B2 (ja) * | 2009-09-17 | 2015-06-03 | 日本電気株式会社 | ストレージシステム及びディスクアレイ装置 |
US9740439B2 (en) * | 2011-12-23 | 2017-08-22 | International Business Machines Corporation | Solid-state storage management |
-
2015
- 2015-06-29 WO PCT/JP2015/068646 patent/WO2017002157A1/ja active Application Filing
- 2015-06-29 JP JP2017525695A patent/JP6359190B2/ja not_active Expired - Fee Related
- 2015-06-29 US US15/571,050 patent/US10353768B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008500604A (ja) * | 2003-10-15 | 2008-01-10 | カルポント コーポレイション | ハードウェアデータベース管理システム用アーキテクチャ |
JP2007199851A (ja) * | 2006-01-24 | 2007-08-09 | Nippon Telegr & Teleph Corp <Ntt> | 避難行動支援システムとそのサーバ装置 |
JP2014071576A (ja) * | 2012-09-28 | 2014-04-21 | Fujitsu Ltd | ストレージ制御装置,プログラマブル論理回路の復旧処理方法及び制御プログラム |
WO2015068285A1 (ja) * | 2013-11-08 | 2015-05-14 | 株式会社日立製作所 | プログラマブルデバイス及びこれを用いた電子システム装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020524853A (ja) * | 2017-06-23 | 2020-08-20 | ザイリンクス インコーポレイテッドXilinx Incorporated | データベースアクセラレータに対する並列計算オフロード |
JP2019144907A (ja) * | 2018-02-21 | 2019-08-29 | 日立オートモティブシステムズ株式会社 | 電子制御装置、構成メモリのエラー検出方法 |
JP7104525B2 (ja) | 2018-02-21 | 2022-07-21 | 日立Astemo株式会社 | 電子制御装置、構成メモリのエラー検出方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180165148A1 (en) | 2018-06-14 |
JP6359190B2 (ja) | 2018-07-18 |
US10353768B2 (en) | 2019-07-16 |
JPWO2017002157A1 (ja) | 2018-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6359190B2 (ja) | 計算機システム及び計算機システムの制御方法 | |
US9015268B2 (en) | Remote direct storage access | |
US9164840B2 (en) | Managing a solid state drive (‘SSD’) in a redundant array of inexpensive drives (‘RAID’) | |
EP4036735B1 (en) | Method, apparatus and readable storage medium | |
US10203899B2 (en) | Method for writing data into flash memory apparatus, flash memory apparatus, and storage system | |
US9619145B2 (en) | Method relating to configurable storage device and adaptive storage device array | |
US20140101106A1 (en) | Log server and log file storage method | |
JPWO2015166540A1 (ja) | ストレージ装置とそのデータ処理方法及びストレージシステム | |
US8849966B2 (en) | Server image capacity optimization | |
WO2017070420A1 (en) | Proactively tuning a storage array | |
US20150082014A1 (en) | Virtual Storage Devices Formed by Selected Partitions of a Physical Storage Device | |
US12056362B2 (en) | Non-volatile storage device offloading of host tasks | |
US20220075525A1 (en) | Redundant Array of Independent Disks (RAID) Management Method, and RAID Controller and System | |
US11256435B2 (en) | Method and apparatus for performing data-accessing management in a storage server | |
JP2019159437A (ja) | 情報処理装置、転送制御方法および転送制御プログラム | |
US20240103765A1 (en) | Non-volatile storage device offloading of host tasks | |
US20240103756A1 (en) | Non-volatile storage device offloading of host tasks | |
CN111090391B (zh) | 一种提高固态硬盘阵列性能的方法与服务器 | |
WO2015159359A1 (ja) | 物理計算機 | |
JP2010198263A (ja) | データ診断装置、データ診断方法及びデータ診断プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15897084 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017525695 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15571050 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15897084 Country of ref document: EP Kind code of ref document: A1 |