Information processing device and control method
The information processing device addresses the issue of overwritten logs during system crashes by storing history information in system memory and renaming dump files, enabling effective analysis of SSD issues post-crash.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- レノボ·ジャパン合同会社
- Filing Date
- 2025-03-11
- Publication Date
- 2026-06-23
AI Technical Summary
When a system crashes due to an error, especially involving storage devices like SSDs, the logs of internal processes are overwritten, making it impossible to analyze the original problem, as the system continues to write dump files to the affected device.
An information processing device that temporarily stores system programs in system memory and includes a processor to detect errors, obtaining and storing history information from a ring buffer area in system memory, and generating a dump file with log data, which is then saved in internal memory and renamed to prevent overwriting.
Ensures that logs are properly preserved even during system errors, allowing for analysis of the original problem, including the ability to analyze SSD issues without additional equipment after a system crash.
Smart Images

Figure 0007879318000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an information processing apparatus and a control method.
Background Art
[0002] In information processing apparatuses such as personal computers (PCs), those using storage devices such as solid state drives (SSDs) in a storage device are known (see, for example, Patent Document 1).
[0003] Storage devices such as SSDs hold logs (histories) of processes executed internally in an internal memory so that the logs can be read out and analyzed when a problem occurs. For example, an SSD writes logs using a part of an internal memory (for example, DRAM) as a ring buffer, and when the amount of logs to be written exceeds a certain amount, they are overwritten and the old logs are erased.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] When a system crashes due to an error (for example, displaying a blue screen), it writes information about the system memory at that time as a dump file to the SSD. However, even if the problem is related to the SSD, the system will still generate a dump file when it crashes. Therefore, if the system crashes due to an SSD issue, the system writes a dump file to the SSD, but the SSD is unaware of this and continues writing logs, which can overwrite the logs and make it impossible to analyze the logs from when the original problem occurred. This is not limited to storage devices such as SSDs, but applies to all devices that store logs (history) of processes executed internally in a ring buffer.
[0006] The present invention has been made in view of the above circumstances, and one of its objectives is to provide an information processing device and a control method that can properly preserve logs (history) of processes executed inside a device even if an error occurs in the system. [Means for solving the problem]
[0007] The present invention has been made to solve the above problems, and an information processing device according to a first aspect of the present invention comprises a system memory for temporarily storing a system program, a processor for executing system processing by the program stored in the system memory, and a device having a controller and internal memory inside, which stores the history of processing executed internally as history information in a ring buffer area within the internal memory, wherein when the processor detects that an error has occurred that prevents the system processing from continuing normally, it obtains the history information stored in the ring buffer area within the device from the device and stores it in the system memory.
[0008] The above-mentioned information processing device may, after the processor has acquired the history information stored in the ring buffer area from the device and stored it in the system memory, generate a dump file containing at least some of the data stored in the system memory that includes the history information, store it in the internal memory of the device, restart the system, and then change the filename of the dump file and store it in the internal memory.
[0009] In the above-described information processing device, an Embedded Controller (EC) capable of communicating with the processor is provided. When the processor detects that the error has occurred, it outputs information to the EC based on the occurrence of the error due to the system processing. When the EC receives the information output by the system processing based on the occurrence of the error, it sends an instruction signal to the device instructing it to save the history information. The device, upon receiving the instruction signal from the EC, stores the history information stored in the ring buffer area in another area of the internal memory. The processor may also retrieve the history information stored in the other area of the internal memory when it detects that an error has occurred that prevents the system processing from continuing normally.
[0010] In the above-described information processing device, if the processor detects that the error has occurred, it transmits information based on the occurrence of the error through the system processing to the device, and the device, upon receiving the information based on the occurrence of the error transmitted through the system processing, stores the history information stored in the ring buffer area in another area of the internal memory, and if the processor detects that an error has occurred that prevents the system processing from continuing normally, it may retrieve the history information stored in the other area of the internal memory.
[0011] In the above-described information processing device, the processor may display a blue screen on the display unit if the error occurs.
[0012] Furthermore, a control method for an information processing apparatus according to a second aspect of the present invention, comprising a system memory for temporarily storing a system program, a processor for executing system processing by a program stored in the system memory, and a device having a controller and internal memory, which stores a history of processing performed internally as history information in a ring buffer area within the internal memory, includes the steps of: detecting the occurrence of an error that prevents the processor from continuing the system processing normally; and, if the occurrence of the error is detected, obtaining the history information stored in the ring buffer area within the device from the device and storing it in the system memory. [Effects of the Invention]
[0013] According to the above embodiment of the present invention, even if an error occurs in the system, the logs (history) of processes executed inside the device can be properly preserved. [Brief explanation of the drawing]
[0014] [Figure 1] A block diagram showing an example of the hardware configuration of an information processing device according to the first embodiment. [Figure 2] A block diagram showing an example of the functional configuration of an information processing device according to the first embodiment. [Figure 3] A flowchart showing an example of log preservation processing according to the first embodiment. [Figure 4] A block diagram showing an example of the functional configuration of an information processing device according to the second embodiment. [Figure 5] A diagram showing an overview of the log preservation function according to the third embodiment. [Figure 6] A block diagram showing an example of the functional configuration of an information processing device according to the third embodiment. [Figure 7] A flowchart showing an example of log preservation processing according to the third embodiment. [Figure 8]Block diagram showing an example of the functional configuration of the information processing apparatus according to the fourth embodiment. [Figure 9] Block diagram showing an example of the functional configuration of the information processing apparatus according to the fifth embodiment.
Mode for Carrying Out the Invention
[0015] Hereinafter, embodiments of the present invention will be described with reference to the drawings. <First Embodiment> First, the first embodiment of the present invention will be described. FIG. 1 is a block diagram showing an example of the main hardware configuration of the information processing apparatus according to the present embodiment. The illustrated information processing apparatus 1 is, as an example, a clamshell type (notebook type) PC (Personal Computer).
[0016] The information processing apparatus 1 includes a CPU 11, a system memory 12, a video subsystem 13, a display unit 14, a chipset 21, a BIOS memory 22, an embedded controller (EC: Embedded Controller) 31, an input unit 32, a power supply circuit 33, and an SSD 40.
[0017] In the present embodiment, the CPU 11, the system memory 12, the video subsystem 13, the display unit 14, the chipset 21, the BIOS memory 22, the embedded controller 31, the input unit 32, and the power supply circuit 33 are referred to as the host unit 50. Also, the CPU 11, the chipset 21, and the system memory 12 are referred to as the host control unit 10.
[0018] The CPU (Central Processing Unit) 11 executes various arithmetic processes under program control and controls the entire information processing apparatus 1.
[0019] System memory 12 is writable memory used as a reading area for the CPU 11's executable program, or as a work area for writing processing data for the executable program. System memory 12 is composed of, for example, multiple DRAM (Dynamic Random Access Memory) chips. This executable program includes the OS (Operating System), various drivers for hardware operation of peripheral devices, various services / utilities, application programs, etc.
[0020] The video subsystem 13 is a subsystem for implementing functions related to image display and includes a video controller. This video controller processes drawing commands from the CPU 11, writes the processed drawing information to video memory, reads this drawing information from video memory, and outputs it to the display unit 14 as drawing data (display data).
[0021] The display unit 14 is, for example, a liquid crystal display and displays a screen based on drawing data (display data) output from the video subsystem 13. Note that the display unit 14 is not limited to a liquid crystal display; it may also be other displays such as an organic EL (Electro-Luminescence) display.
[0022] The chipset 21 includes controllers for USB (Universal Serial Bus), Serial ATA (AT Attachment), SPI (Serial Peripheral Interface) bus, PCI (Peripheral Component Interconnect) bus, PCI-Express bus, and LPC (Low Pin Count) bus, and multiple devices are connected to it. In the example shown in Figure 1, the BIOS memory 22 and SSD 40 are connected to the chipset 21 as examples of devices.
[0023] The BIOS (Basic Input Output System) memory 22 consists of electrically rewritable non-volatile memory such as EEPROM (Electrically Erasable Programmable Read Only Memory) or flash ROM (flash memory). The BIOS memory 22 stores the BIOS and system firmware for controlling the embedded controller 31, etc.
[0024] The SSD (Solid State Drive) 40 is an example of a storage device having rewritable non-volatile memory, and stores the OS, various drivers, various services / utilities, application programs, and various data. The information processing device 1 performs various information processing using the data stored in the SSD 40. The SSD 40 is connected to the embedded controller 31, which will be described later, for example, by the SMBus (System Management Bus). The SSD 40 is also connected to the chipset 21, for example, by the PCI-Express bus (hereinafter sometimes referred to as PCIe).
[0025] The SSD 40 also includes multiple flash memories 41, a memory controller 42, and DRAM 43. The flash memory 41 is, for example, a NAND flash memory, which is an example of a rewritable non-volatile memory.
[0026] The memory controller 42 is a processor that includes, for example, a CPU, ROM, RAM, etc. (not shown), and comprehensively controls the SSD 40. The memory controller 42 performs processes such as controlling the host interface (host I / F) with the chipset 21, controlling the memory interface (memory I / F) with the flash memory 41, and managing the data of the flash memory 41.
[0027] A portion of the DRAM 43 is used as a ring buffer area to store logs (history) of processes executed inside the SSD 40. The memory controller 42 stores logs of processes executed in response to access from the host unit 50 in the ring buffer within the DRAM 43. These logs are used for analysis when problems occur.
[0028] The memory controller 42 generates log data (history information) each time it executes an internal process and stores it in a ring buffer in the DRAM 43. The ring buffer is a limited area (a relatively small area), and when the amount of log data to be written exceeds a certain amount, it is overwritten and the oldest log data is erased.
[0029] The embedded controller 31 (an example of an embedded control unit) is a one-chip microcomputer that monitors and controls various devices (peripheral devices, sensors, etc.) regardless of the system state of the information processing device 1. The embedded controller 31 also has a power management function that controls the power supply circuit 33. The embedded controller 31 is composed of a CPU, ROM, RAM, etc. (not shown), and is equipped with multiple channels of A / D input terminals, D / A output terminals, a timer, and digital input / output terminals. The embedded controller 31 is connected to, for example, the input unit 32 and the power supply circuit 33 via these input / output terminals, and the embedded controller 31 controls the operation of each connected part. The embedded controller 31 is also equipped with SMBus and is connected to the SSD 40 via SMBus.
[0030] The input unit 32 is, for example, an input device such as a keyboard, a pointing device, or a touchpad.
[0031] The power supply circuit 33 includes, for example, a DC / DC converter, a charge / discharge unit, and an AC / DC adapter, and converts the DC voltage supplied from an external power source or battery into multiple voltages necessary to operate the information processing device 1. The power supply circuit 33 also supplies power to each part of the information processing device 1 based on control from the embedded controller 31.
[0032] Next, with reference to Figure 2, the configuration of the function for preserving logs in the SSD 40 in the information processing device 1 according to this embodiment will be described. Figure 2 is a block diagram showing an example of the functional configuration of the information processing device 1 according to this embodiment. In Figure 2, the same reference numerals are used for components corresponding to those in Figure 1. As shown in Figure 2, the information processing device 1 comprises a host unit 50 and an SSD 40. Note that only the main components of this embodiment are shown in Figure 2.
[0033] The host unit 50 comprises a host control unit 10 and an embedded controller 31. The host control unit 10 is a functional unit realized by, for example, a CPU 11, a chipset 21, and a system memory 12, and performs various processes such as information processing that involves inputting and outputting data to the SSD 40.
[0034] The host control unit 10 includes an OS kernel 60 and a power management driver 62. The OS kernel 60 is software that handles the basic functions of an OS, such as Windows®.
[0035] The power management driver 62 is a driver that mediates communication between the OS kernel 60 and the embedded controller 31, and may be included in the OS functionality or provided as a driver that runs on the OS.
[0036] If the OS kernel 60 detects that an error has occurred that prevents the OS from continuing system processing normally (system error), it outputs error information based on the occurrence of the system error to the power management driver 62 (Detect system error).
[0037] When the power management driver 62 obtains error information output from the OS kernel 60, it sends a request signal to the embedded controller 31 requesting the preservation of the log in the SSD 40 (Request store log).
[0038] When the embedded controller 31 receives the above request signal from the power management driver 62, it sends instruction information to the SSD 40 instructing it to save the log data. In response to receiving the instruction signal from the embedded controller 31, the SSD 40 stores the log data stored in the ring buffer area of the DRAM 43 in another area of the DRAM 43.
[0039] The "other areas" refer to specific areas within the DRAM 43 that are pre-configured for the purpose of saving log data outside the ring buffer area to prevent it from being overwritten, and which are areas capable of storing at least the amount of data stored in the ring buffer area.
[0040] Thus, when the host control unit 10 detects that an error has occurred that prevents the OS from continuing system processing normally (a system crash), it outputs a request signal requesting the preservation of the logs in the SSD 40, thereby sending an instruction signal to the SSD 40 via the embedded controller 31 to instruct the SSD 40 to save the log data. As a result, the SSD 40 can preserve the logs in the SSD 40 by saving the log data from when the system crashed outside the ring buffer area.
[0041] Next, referring to Figure 3, we will explain the operation of the log preservation process that preserves the logs in SSD40, as explained with reference to Figure 2. Figure 3 is a flowchart showing an example of log preservation processing according to this embodiment.
[0042] (Step S101) The OS kernel 60 begins acquiring system error events that occur during system processing by the OS. Then, it proceeds to step S103.
[0043] (Step S103) The OS kernel 60 determines whether or not it has detected a system error based on the system error event. A system error is an error in which the OS cannot continue system processing normally, such as an error in which the screen display becomes a blue screen of death (BSOD). If the host control unit 10 determines that it has not detected a system error (NO), it performs the process in step S103 again, and if it determines that it has detected a system error (YES), it proceeds to the process in step S105.
[0044] (Step S105) The OS kernel 60 outputs error information based on the occurrence of a system error to the power management driver 62. Upon receiving the error information output from the OS kernel 60, the power management driver 62 outputs a request signal (log preservation request signal) to the embedded controller 31 requesting the preservation of the log in the SSD 40. Then, the process proceeds to step S107.
[0045] (Step S107) When the embedded controller 31 receives a log preservation request signal from the power management driver 62, it sends an instruction signal (log preservation instruction signal) to the SSD 40 to instruct it to save the log data.
[0046] (Step S109) In response to receiving a log save instruction signal from the embedded controller 31, the SSD 40 causes the log data stored in the ring buffer area of the DRAM 43 to be stored in another area of the DRAM 43.
[0047] As described above, the information processing device 1 according to this embodiment includes a system memory 12 for temporarily storing system (OS, etc.) programs, a processor (CPU 11, chipset 21, etc.) for executing system processing by programs stored in the system memory 12, and an SSD 40 (an example of a device). The SSD 40 has an internal controller (e.g., a memory controller 42) and internal memory (e.g., flash memory 41 and DRAM 43), and stores the log history of processing executed internally as log data (history information) in a ring buffer area within the internal memory (e.g., DRAM 43). When the processor detects that an error has occurred that prevents the OS from continuing system processing normally (system error), it outputs information based on the occurrence of a system error during system processing. Based on the information output by the system processing based on the occurrence of a system error, the SSD 40 stores the log data stored in the ring buffer area within the internal memory (e.g., DRAM 43) in another area within the internal memory (e.g., DRAM 43).
[0048] As a result, the information processing device 1 saves the log data in the SSD 40 outside the ring buffer area in its internal memory (e.g., DRAM 43) according to the timing of the system error. Therefore, even if the log data in the SSD 40 is updated afterward, the log in the SSD 40 at the time of the system error can be preserved. Thus, even if a system error occurs, the information processing device 1 can properly preserve the log (history) of the processes executed inside the SSD 40. This allows for analysis using the preserved log even if the system crashes due to a problem with the SSD 40.
[0049] For example, the information processing device 1 is equipped with an embedded controller 31 that can communicate with the processor. When the processor (CPU 11, chipset 21, etc.) detects that a system error has occurred, it outputs information based on the system error (e.g., a log preservation request signal) to the embedded controller 31 through system processing. When the embedded controller 31 receives the information based on the system error output by the system processing (e.g., a log preservation request signal), it sends an instruction signal (log preservation instruction signal) to the SSD 40 to instruct it to save the log data. In response to receiving the log preservation instruction signal from the embedded controller 31, the SSD 40 stores the log data stored in the ring buffer area of its internal memory (e.g., DRAM 43) in another area of its internal memory (e.g., DRAM 43).
[0050] As a result, if a system error occurs, the information processing device 1 can save the log data in the SSD 40 to an area outside the ring buffer region in its internal memory (e.g., DRAM 43) via the embedded controller 31, without changing the OS processing, thus preserving the log in the SSD 40 when a system error occurs. Therefore, even if a system error occurs, the information processing device 1 can properly preserve the log (history) of the processing performed inside the SSD 40.
[0051] Furthermore, if a system error occurs, the processor (for example, CPU 11) will display a blue screen on the display unit 14.
[0052] As a result, when a system error occurs that causes the screen to display a blue screen, the information processing device 1 saves the log data in the SSD 40 outside the ring buffer area in the internal memory (e.g., DRAM 43) according to the timing of the error. Therefore, even if the log data in the SSD 40 is updated afterward, the log in the SSD 40 at the time of the system error can be preserved. Thus, even if a system error occurs, the information processing device 1 can properly preserve the log (history) of the processes executed inside the SSD 40.
[0053] Furthermore, the control method in the information processing device 1 according to this embodiment includes the steps of: detecting the occurrence of an error (system error) in which the processor (CPU 11, chipset 21, etc.) cannot continue system processing by the OS normally; outputting information based on the occurrence of a system error by system processing when it is detected that a system error has occurred; and causing the SSD 40 (an example of a device) to store log data stored in the ring buffer area of the internal memory (e.g., DRAM 43) in another area of the internal memory (e.g., DRAM 43) based on the information based on the occurrence of a system error output by system processing.
[0054] As a result, the control method in the information processing device 1 saves the log data in the SSD 40 outside the ring buffer area in the internal memory (e.g., DRAM 43) according to the timing of the system error. Therefore, even if the log data in the SSD 40 is updated afterward, the log in the SSD 40 at the time of the system error can be preserved. Thus, the control method in the information processing device 1 can properly preserve the log (history) of the processes executed inside the SSD 40 even if a system error occurs. As a result, even if the system crashes due to the SSD 40, analysis can be performed using the preserved log.
[0055] The SSD 40 may also store the log data stored in the ring buffer area of the DRAM 43 into the flash memory 41. In this case, log analysis can be performed by accessing the log data stored in the flash memory 41 after the system has been restarted, without the need for special fixtures or other equipment.
[0056] <Second Embodiment> Next, a second embodiment of the present invention will be described. In the first embodiment, when a system error by the OS was detected, the processor (CPU 11, chipset 21, etc.) requested log preservation from the SSD 40 via the embedded controller 31, but this may be done without going through the embedded controller 31.
[0057] Figure 4 is a block diagram showing an example of the functional configuration of the information processing device 1 according to this embodiment. In Figure 4, the same reference numerals are used for components corresponding to those in Figure 2. Note that only the main components related to this embodiment are shown in Figure 4.
[0058] The host unit 50 includes a host control unit 10. The host control unit 10 is a functional unit realized by, for example, a CPU 11, a chipset 21, and system memory 12, and includes an OS kernel 60 and a PCI bridge 15.
[0059] The PCI bridge 15 is located inside or connected to the chipset 21 and connects the CPU 11 and SSD 40 using a PCI bus or PCI-Express bus.
[0060] If the OS kernel 60 detects that an error has occurred that prevents the OS from continuing system processing normally (a system error), it sends error information based on the occurrence of the system error to the SSD 40 via the PCI bridge 15 (Detect system Error). For example, the OS kernel 60 may also send a request signal to the SSD 40 via the PCI bridge 15 as error information (Request store log), requesting the preservation of the log in the SSD 40 (Request store log).
[0061] When SSD40 receives error information (for example, a log preservation request signal) sent from the OS kernel60, it moves the log data stored in the ring buffer area of DRAM43 to another area of DRAM43.
[0062] Thus, when the information processing device 1 according to this embodiment detects that the processor (CPU 11, chipset 21, etc.) has encountered an error (system error) that prevents the OS from continuing system processing normally, it sends information (for example, a log preservation request signal) based on the occurrence of a system error during system processing to the SSD 40. The SSD 40 then... Upon receiving information (e.g., a log preservation request signal) based on a system error transmitted by system processing, the log data stored in the ring buffer area of the internal memory (e.g., DRAM43) is moved to another area of the internal memory (e.g., DRAM43).
[0063] As a result, the information processing device 1 saves the log data in the SSD 40 outside the ring buffer area in its internal memory (e.g., DRAM 43) according to the timing of the system error. Therefore, even if the log data in the SSD 40 is updated afterward, the log in the SSD 40 at the time of the system error can be preserved. Thus, even if a system error occurs, the information processing device 1 can properly preserve the log (history) of the processes executed inside the SSD 40. This allows for analysis using the preserved log even if the system crashes due to a problem with the SSD 40.
[0064] Similar to the first embodiment, the SSD 40 may store the log data stored in the ring buffer area of the DRAM 43 in the flash memory 41. In this case, log analysis can be performed by accessing the log data stored in the flash memory 41 after the system has been restarted, without the need for special fixtures or other equipment.
[0065] Furthermore, according to the first and second embodiments described above, the efficiency of fault analysis can be improved compared to conventional methods. For example, conventionally, it was not possible to analyze system errors suspected to be caused by SSD problems from SSD logs, which presented the following challenges. (Previous challenges) Previously, detecting SSD problems required other methods, making analysis difficult (e.g., SSD UART debugging, bus tracing). Analysis using equipment such as bus tracing presented challenges in the analysis method itself, such as the inability to reproduce the problem due to changes in signal quality conditions. • When problems occurred in systems that were already commercialized, such as field issues, the analysis was difficult due to the complexity of the methods used. While the above-mentioned challenges existed in the past, by adopting this embodiment, it becomes possible to analyze failures from both the events that occur during system errors and the logs in the SSD40, enabling rapid identification of the root cause.
[0066] <Third Embodiment> Next, a third embodiment of the present invention will be described. In this embodiment, the information processing device 1 preserves the log by acquiring log data of processes executed inside the SSD 40 from the SSD 40 to the system side according to the timing of a system error. For example, the information processing device 1 includes the log data acquired by the system side in a memory dump file generated when a system error occurs, thereby facilitating log analysis at a later date.
[0067] Referring to Figure 5, an overview of the log preservation function for preserving logs in the SSD 40 in this embodiment will be described. Figure 5 is a diagram showing an overview of the log preservation function according to this embodiment.
[0068] When a system error occurs and the system crashes, the desktop screen displays a blue screen (BSOD). The OS performs a memory dump of at least some of the data in system memory 12, but before that, it collects log data stored in the ring buffer area of the SSD 40's DRAM 43 and stores it in system memory 12.
[0069] Subsequently, the OS performs a memory dump of at least some of the data, including the log data in the system memory 12, generating a dump file, which overwrites the dump file (pagefile.sys) stored in the flash memory 41 of the SSD 40.
[0070] After the OS is forcibly restarted and the boot process is complete, if a system error occurred before booting, the dump file (pagefile.sys) is renamed (MEMORY.DMP). This ensures that even if the log data on SSD40 is updated afterward, the logs on SSD40 at the time of the system error are preserved, allowing for log analysis after the restart.
[0071] Figure 6 is a block diagram showing an example of the functional configuration of the information processing device 1 according to this embodiment. In Figure 6, the same reference numerals are used for components corresponding to Figures 2 and 4. Note that only the main components related to this embodiment are shown in Figure 6.
[0072] The configuration shown in Figure 6 is similar to the configuration shown in Figure 4, in which the storage management driver 61 and the SSD 40 are connected via the PCI bridge 15. The storage management driver 61 is a driver that manages the input and output of data to the SSD 40, which is one of the functions executed by an OS such as Windows®.
[0073] If the storage management driver 61 detects that an error has occurred that prevents the OS from continuing system processing normally (system error), it sends a log collection signal to the SSD 40 via the PCI bridge 15, requesting the collection of log data stored in the ring buffer area of the SSD 40's DRAM 43 (Pick up log).
[0074] When SSD40 receives a log collection signal from the storage management driver 61, it sends the log data stored in the ring buffer area of DRAM43 to the storage management driver 61 via the PCI bridge 15. The storage management driver 61 receives the log data sent from SSD40 and stores it in the system memory 12 (Store log).
[0075] Subsequently, the OS performs a memory dump, which is done when a system error occurs, to generate a dump file containing log data, and updates (overwrites) the dump file stored in the flash memory 41 within the SSD 40. Furthermore, by renaming and saving the dump file, the log data is preserved even if the dump file is subsequently updated.
[0076] Next, referring to Figure 7, we will explain the operation of the log preservation process that preserves the logs in SSD40, as described with reference to Figure 6. Figure 7 is a flowchart showing an example of log preservation processing according to this embodiment.
[0077] (Step S201) The storage management driver 61 starts acquiring system error events that occur during system processing by the OS. Then, it proceeds to step S203.
[0078] (Step S203) The storage management driver 61 determines whether or not it has detected a system error based on the system error event. A system error is an error in which the OS cannot continue system processing normally, such as an error in which the screen display becomes a blue screen of death (BSOD). If the host control unit 10 determines that it has not detected a system error (NO), it performs the process in step S203 again, and if it determines that it has detected a system error (YES), it proceeds to the process in step S205.
[0079] (Step S205) The storage management driver 61 sends a log collection signal to the SSD 40 via the PCI bridge 15, requesting the collection of log data stored in the ring buffer area of the SSD 40's DRAM 43. The driver then retrieves the log data from the SSD 40 and stores it in the system memory 12. The process then proceeds to step S207.
[0080] (Step S207) The OS generates a dump file containing the log data stored in the system memory 12 and updates (overwrites) the dump file stored in the flash memory 41 in the SSD 40. Then, the process proceeds to step S209.
[0081] (Step S209) The OS forcibly restarts the system based on user action (e.g., pressing and holding the power button) and proceeds to step S211.
[0082] (Step S211) Once the OS starts the system, it proceeds to step S213.
[0083] (Step S213) Once the OS starts the system, it proceeds to step S215.
[0084] (Step S215) If a system error occurred before the restart, the storage management driver 61 renames and saves the dump file stored in the flash memory 41 within the SSD 40.
[0085] As described above, the information processing device 1 according to this embodiment includes a system memory 12 for temporarily storing system (OS, etc.) programs, a processor (CPU 11, chipset 21, etc.) for executing system processing by programs stored in the system memory 12, and an SSD 40 (an example of a device). The SSD 40 has an internal controller (e.g., a memory controller 42) and internal memory (e.g., flash memory 41 and DRAM 43), and stores the log history of processing executed internally as log data (history information) in a ring buffer area within the internal memory (e.g., DRAM 43). When the processor detects that an error has occurred that prevents the system processing from continuing normally (a system error), it retrieves the log data stored in the ring buffer area within the internal memory (e.g., DRAM 43) of the SSD 40 from the SSD 40 and stores it in the system memory 12.
[0086] As a result, the information processing device 1 collects log data from the SSD 40 to the system side and saves it to the system memory 12 in accordance with the timing of the system error. Therefore, even if the log data in the SSD 40 is updated afterward, the log in the SSD 40 at the time of the system error can be preserved. Thus, the information processing device 1 can properly preserve the log (history) of the processes executed inside the SSD 40 even if a system error occurs.
[0087] Furthermore, the processor (CPU 11, chipset 21, etc.) retrieves log data stored in the ring buffer area of the SSD 40's internal memory (e.g., DRAM 43) and stores it in the system memory 12. Then, it generates a dump file containing at least some of the data, including the log data stored in the system memory 12, and stores it in the internal memory of the SSD 40 (e.g., flash memory 41). After the system is restarted, the processor (CPU 11, chipset 21, etc.) renames the dump file and stores it in the internal memory of the SSD 40 (e.g., flash memory 41).
[0088] As a result, when a system error occurs, the information processing device 1 generates a dump file containing the log data stored in the SSD 40 in the system memory 12, stores it in the internal memory (e.g., flash memory 41) of the SSD 40, and renames the dump file after a restart, thereby preserving the logs in the SSD 40 when a system error occurs. Therefore, even if a system error occurs, the information processing device 1 can properly preserve the logs (history) of the processes executed inside the SSD 40. As a result, even if the system crashes due to the SSD 40, analysis can be performed using the preserved logs after a restart.
[0089] Furthermore, if a system error occurs, the processor (for example, CPU 11) will display a blue screen on the display unit 14.
[0090] As a result, when a system error occurs that causes the screen to display a blue screen, the information processing device 1 collects log data from the SSD 40 to the system and saves it to the system memory 12 according to the timing of the error. Therefore, even if the log data in the SSD 40 is updated afterward, the log in the SSD 40 at the time the system error occurred can be preserved. Thus, even if a system error occurs, the information processing device 1 can properly preserve the log (history) of the processes executed inside the SSD 40.
[0091] Furthermore, the control method in the information processing device 1 according to this embodiment includes the steps of: detecting the occurrence of an error (system error) in which the processor (CPU 11, chipset 21, etc.) is unable to continue system processing by the OS normally; and, if a system error is detected, obtaining log data (history information) stored in the ring buffer area of the SSD 40 (an example of a device) from the SSD 40 and storing it in the system memory 12.
[0092] As a result, the control method in the information processing device 1 collects log data from the SSD 40 on the system side and saves it to the system memory 12 in accordance with the timing of the system error. Therefore, even if the log data in the SSD 40 is updated afterward, the log in the SSD 40 at the time of the system error can be preserved. Thus, the control method in the information processing device 1 can properly preserve the log (history) of the processes executed inside the SSD 40 even if an error occurs in the system.
[0093] <Fourth Embodiment> Next, a fourth embodiment of the present invention will be described. In the third embodiment, an example was described in which log data stored in the ring buffer area of the SSD 40 is collected and stored in the system memory 12 when a system error occurs. However, by performing the log preservation process described in the first embodiment, log data stored outside the ring buffer area within the SSD 40 may be collected according to the timing of when the system error occurs.
[0094] Figure 8 is a block diagram showing an example of the functional configuration of the information processing device 1 according to this embodiment. The configuration shown in Figure 8 corresponds to a configuration that combines the configuration shown in Figure 2 and the configuration shown in Figure 6, and the same reference numerals are used for the components corresponding to each figure. Note that only the main components related to this embodiment are shown in Figure 8.
[0095] If the OS kernel 60 detects that an error has occurred that prevents the OS from continuing system processing normally (system error), it outputs error information based on the occurrence of the system error to the power management driver 62 (Detect system error).
[0096] When the power management driver 62 obtains error information output from the OS kernel 60, it sends a request signal to the embedded controller 31 requesting the preservation of the log in the SSD 40 (Request store log).
[0097] When the embedded controller 31 receives the above request signal from the power management driver 62, it sends instruction information to the SSD 40 instructing it to save the log data. In response to receiving the instruction signal from the embedded controller 31, the SSD 40 stores the log data stored in the ring buffer area of the DRAM 43 in another area of the DRAM 43.
[0098] Next, the storage management driver 61 sends a log collection signal to the SSD 40 via the PCI bridge 15, requesting the collection of log data stored in the ring buffer area within the SSD 40's DRAM 43 (Pick up log).
[0099] When SSD40 receives a log collection signal from the storage management driver 61, it sends the log data stored in the ring buffer area of DRAM43 to the storage management driver 61 via the PCI bridge 15. The storage management driver 61 receives the log data sent from SSD40 and stores it in the system memory 12 (Store log).
[0100] Subsequently, the OS performs a memory dump, which is done when a system error occurs, to generate a dump file containing log data, and updates (overwrites) the dump file stored in the flash memory 41 within the SSD 40. Furthermore, by renaming and saving the dump file, the log data is preserved even if the dump file is subsequently updated.
[0101] As described above, in the information processing device 1 according to this embodiment, when the processor (CPU 11, chipset 21, etc.) detects that a system error has occurred, it outputs information based on the occurrence of the system error (e.g., a log preservation request signal) to the embedded controller 31 through system processing. When the embedded controller 31 receives the information based on the occurrence of a system error (e.g., a log preservation request signal) output by the system processing, it sends an instruction signal (log preservation instruction signal) to the SSD 40 to instruct it to save the log data. In response to receiving the log preservation instruction signal sent from the embedded controller 31, the SSD 40 stores the log data stored in the ring buffer area of its internal memory (e.g., DRAM 43) in another area of its internal memory (e.g., DRAM 43). Then, when the processor detects that a system error has occurred, it retrieves the log data stored in the other area of the SSD 40's internal memory (e.g., DRAM 43).
[0102] As a result, the information processing device 1 achieves the same effects as in the third embodiment. The information processing device 1 collects the log data preserved in the SSD 40 on the system side and saves it to the system memory 12 according to the timing of the system error. Therefore, even if the log data in the SSD 40 is updated afterward, the log in the SSD 40 at the time the system error occurred can be preserved. Thus, even if an error occurs in the system, the information processing device 1 can properly preserve the log (history) of the processes executed inside the SSD 40.
[0103] <Fifth Embodiment> Next, a fifth embodiment of the present invention will be described. In the third embodiment, an example was described in which log data stored in the ring buffer area of the SSD 40 is collected and stored in the system memory 12 when a system error occurs. However, by performing the log preservation process described in the second embodiment, log data stored outside the ring buffer area within the SSD 40 may be collected according to the timing of when the system error occurs.
[0104] Figure 9 is a block diagram showing an example of the functional configuration of the information processing device 1 according to this embodiment. The configuration shown in Figure 9 corresponds to a configuration that combines the configuration shown in Figure 4 and the configuration shown in Figure 6, and the same reference numerals are used for the components corresponding to each figure. Note that only the main components related to this embodiment are shown in Figure 9.
[0105] If the OS kernel 60 detects that an error has occurred that prevents the OS from continuing system processing normally (a system error), it sends error information based on the occurrence of the system error to the SSD 40 via the PCI bridge 15 (Detect system Error). For example, the OS kernel 60 may also send a request signal to the SSD 40 via the PCI bridge 15 as error information (Request store log), requesting the preservation of the log in the SSD 40 (Request store log).
[0106] When SSD40 receives error information (for example, a log preservation request signal) sent from the OS kernel60, it moves the log data stored in the ring buffer area of DRAM43 to another area of DRAM43.
[0107] Next, the storage management driver 61 sends a log collection signal to the SSD 40 via the PCI bridge 15, requesting the collection of log data stored in the ring buffer area within the SSD 40's DRAM 43 (Pick up log).
[0108] When SSD40 receives a log collection signal from the storage management driver 61, it sends the log data stored in the ring buffer area of DRAM43 to the storage management driver 61 via the PCI bridge 15. The storage management driver 61 receives the log data sent from SSD40 and stores it in the system memory 12 (Store log).
[0109] Subsequently, the OS performs a memory dump, which is done when a system error occurs, to generate a dump file containing log data, and updates (overwrites) the dump file stored in the flash memory 41 within the SSD 40. Furthermore, by renaming and saving the dump file, the log data is preserved even if the dump file is subsequently updated.
[0110] Thus, when the information processing device 1 according to this embodiment detects that the processor (CPU 11, chipset 21, etc.) has encountered an error (system error) that prevents the OS from continuing system processing normally, it sends information (for example, a log preservation request signal) based on the occurrence of a system error during system processing to the SSD 40. The SSD 40 then... Upon receiving information (e.g., a log preservation request signal) based on a system error transmitted by the system processing, the log data stored in the ring buffer area of the internal memory (e.g., DRAM43) is moved to another area of the internal memory (e.g., DRAM43). Then, when the processor detects that a system error has occurred, it retrieves the log data stored in the other area of the SSD40's internal memory (e.g., DRAM43).
[0111] As a result, the information processing device 1 achieves the same effects as in the third embodiment. The information processing device 1 collects the log data preserved in the SSD 40 on the system side and saves it to the system memory 12 according to the timing of the system error. Therefore, even if the log data in the SSD 40 is updated afterward, the log in the SSD 40 at the time the system error occurred can be preserved. Thus, even if an error occurs in the system, the information processing device 1 can properly preserve the log (history) of the processes executed inside the SSD 40.
[0112] Furthermore, according to the third, fourth, and fifth embodiments described above, the efficiency of fault analysis can be improved compared to the conventional method. For example, conventionally, when an SSD problem was suspected, it was necessary to prohibit the writing of a memory dump (crash dump) during a system crash, reproduce the problem, and then perform the analysis, which presented the following challenges. (Previous challenges) • It was necessary to reproduce the problem again in order to obtain the SSD logs. • When a problem occurred, there was no way to determine if it was caused by the SSD (because crash dumps could not be reviewed), making problem analysis difficult. • When problems occurred in systems that were already commercialized, such as field issues, analysis was difficult. While the above-mentioned challenges existed in the past, by adopting this embodiment, fault analysis can be performed using both the dump file generated by the system and the logs in the SSD40, enabling rapid identification of the root cause.
[0113] Although each embodiment of this invention has been described in detail above with reference to the drawings, the specific configuration is not limited to the embodiments described above, and includes designs and the like that do not depart from the gist of this invention. For example, the configurations described in each of the embodiments described above can be combined in any way.
[0114] For example, in the above embodiment, the information processing device 1 was described as a clamshell-type (notebook-type) PC, but it is not limited to this, and may be other information processing devices such as a tablet terminal or a desktop PC.
[0115] Furthermore, although the above embodiment described Windows® as an example of the OS for the information processing device 1, it is not limited to this, and other OSs may be applied.
[0116] Furthermore, although the above embodiment described SSD40 as an example of a device subject to internal log preservation, it is not limited to this. The device subject to internal log preservation may be a storage device other than an SSD, and it is not limited to storage devices; the same can be applied to any device that stores logs (history) of processes performed internally in a ring buffer. For example, devices used in subsystems such as face detection processing, audio processing, and wireless communication can also be applied as devices subject to internal log preservation.
[0117] Furthermore, the interfaces between each part of the host unit 50 and the SSD 40 in the above embodiment can be arbitrarily determined. For example, in Figures 4 and 9, an example was described in which the OS kernel 60 communicates with the SSD 40 via PCI through the PCI bridge 15, but it is not limited to this, and communication with the SSD 40 may be performed using, for example, a vendor's proprietary driver. Also, in the above embodiment, an example of using SMBus as an interface with the embedded controller 31 was described, but it is not limited to this, and other interfaces such as the I2C bus may be used, or voltage changes or voltage pulses may be used.
[0118] The information processing device 1 described above has a computer system inside. The processing in each configuration of the information processing device 1 may be performed by recording a program for realizing the functions of each configuration of the information processing device 1 onto a computer-readable recording medium, loading the program recorded on this recording medium into the computer system, and executing it. Here, "loading the program recorded on the recording medium into the computer system and executing it" includes installing the program into the computer system. Here, "computer system" includes hardware such as the OS and peripheral devices. Furthermore, "computer system" may include multiple computer devices connected via a network including communication lines such as the Internet, WAN, LAN, and dedicated lines. Also, "computer-readable recording medium" refers to portable media such as flexible disks, magneto-optical disks, ROMs, CD-ROMs, and storage devices such as hard disks built into the computer system. Thus, the recording medium storing the program may be a non-transient recording medium such as a CD-ROM.
[0119] Furthermore, the recording medium also includes internal or external recording media accessible from the distribution server for distributing the program. The program may be divided into multiple parts, downloaded at different times, and then combined in each configuration of the information processing device 1. The distribution servers for each of the divided programs may also be different. Moreover, "computer-readable recording media" includes volatile memory (RAM) within computer systems that act as servers or clients when a program is transmitted over a network, which retains the program for a certain period of time. The program itself may also be intended to implement some of the functions described above. Furthermore, the program may be a so-called differential file (differential program) that can implement the functions described above in combination with a program already recorded in the computer system.
[0120] Furthermore, some or all of the functions of the information processing device 1 in the above-described embodiment may be implemented as an integrated circuit such as an LSI (Large Scale Integration). Each function may be individually processorized, or some or all of them may be integrated into a single processor. In addition, the method of implementing the integrated circuit is not limited to LSIs; it may also be implemented using dedicated circuits or general-purpose processors. Furthermore, if an integrated circuit technology that can replace LSIs emerges due to advances in semiconductor technology, an integrated circuit using that technology may be used. [Explanation of symbols]
[0121] 1. Laptop 10 Host Control Unit 11 CPU 12 System Memory 13 Video Subsystems 14 Display section 15 PCI Bridges 21 Chipset 22 BIOS memory 31. Embedded Controller (EC) 32 Input section 33 Power supply circuit 40 SSD 41 Flash memory 42 Memory Controllers 43 DRAM 50 Host Unit 60 OS kernels 61 Storage Management Driver 62 Power Management Drivers
Claims
1. System memory that temporarily stores the system's programs, A processor that executes system processing by a program stored in the aforementioned system memory, A device having an internal controller and internal memory, which stores the history of processes executed internally as history information in a ring buffer area within the internal memory, Equipped with, The aforementioned processor, If an error is detected that prevents the system processing from continuing normally, the history information stored in the ring buffer area within the device is retrieved from the device and stored in the system memory. After obtaining the history information stored in the ring buffer area from the device and storing it in the system memory, a dump file is generated containing at least some of the data, including the history information stored in the system memory, and stored in the internal memory of the device. After restarting the system, rename the dump file and store it in the internal memory. Information processing device.
2. The processor is equipped with an EC (Embedded Controller) capable of communicating with it, The aforementioned processor, If the aforementioned error is detected, the system processing outputs information based on the occurrence of the error to the EC. The aforementioned oscillator is When information is obtained based on the occurrence of the error output by the system processing, an instruction signal is sent to the device to instruct it to save the history information. The device described above, Upon receiving the instruction signal transmitted from the EC, the history information stored in the ring buffer area is stored in another area of the internal memory. The aforementioned processor, If an error occurs that prevents the system processing from continuing normally, the system retrieves the history information stored in another area of the internal memory, stores it in the system memory, generates it as a dump file, and stores it in the internal memory of the device. The information processing apparatus according to claim 1.
3. The aforementioned processor, If the system detects that the aforementioned error has occurred, it transmits information based on the occurrence of the error to the device through the system processing. The device described above, In response to obtaining information based on the occurrence of the error transmitted by the system processing, the history information stored in the ring buffer area is stored in another area of the internal memory. The aforementioned processor, If an error occurs that prevents the system processing from continuing normally, the system retrieves the history information stored in another area of the internal memory, stores it in the system memory, generates it as a dump file, and stores it in the internal memory of the device. The information processing apparatus according to claim 1.
4. The aforementioned processor, If the aforementioned error occurs, a blue screen will be displayed on the display unit. The information processing apparatus according to claim 1.
5. A control method for an information processing apparatus comprising: a system memory for temporarily storing system programs; a processor for executing system processing by programs stored in the system memory; and a device having an internal controller and internal memory, which stores the history of processing performed internally as history information in a ring buffer area within the internal memory, wherein The aforementioned processor, The steps include detecting the occurrence of an error that prevents the system processing from continuing normally, If the aforementioned error is detected, the steps include: obtaining the history information stored in the ring buffer area within the device from the device and storing it in the system memory; The steps include: acquiring the history information stored in the ring buffer area from the device and storing it in the system memory; generating a dump file containing at least some of the data, including the history information stored in the system memory, and storing it in the internal memory of the device; The steps include restarting the system, renaming the dump file, and storing it in the internal memory, A control method including