Information processing device and control method for information processing device

By dynamically setting discard request sizes based on application status, the device optimizes processing times during startup and normal operation, addressing inefficiencies in eMMC management and enhancing user convenience.

JP7790952B2Active Publication Date: 2025-12-23CANON KK
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021200577
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-12-10
Publication Date
2025-12-23
Estimated Expiration
2041-12-10

AI Technical Summary

Technical Problem

The frequent and varying size of discard commands for non-volatile semiconductor storage devices, such as eMMCs, lead to increased processing times during startup and recovery, or prolonged I/O wait times during normal operation, due to inefficient handling of trim and partition management.

Method used

An information processing device that sets the size of discard requests based on the operating status of applications, using an operating system to manage discard processes with different sizes for various operations like startup, normal operation, and shutdown, thereby optimizing the discard command execution.

Benefits of technology

This approach reduces processing times during startup and recovery by prioritizing larger discard sizes during critical phases, while maintaining efficient I/O performance during normal operation, ensuring user convenience and system responsiveness.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007790952000001
    Figure 0007790952000001
  • Figure 0007790952000002
    Figure 0007790952000002
  • Figure 0007790952000003
    Figure 0007790952000003
Patent Text Reader

Abstract

To solve the problem that an eMMC with a small area size processed by a "discard" command may require a long time for startup and recovery, and an eMMC with a large area size processed by the "discard" command may require other applications to wait for a long time.SOLUTION: A first size that is set when a first request including at least a discard process is received from a first application is larger than a second size that is set when a second request including at least the discard process is received from a second application different from the first application.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing apparatus and a control method for the information processing apparatus. [Background technology]

[0002] In recent years, an increasing number of information processing devices are equipped with nonvolatile semiconductor storage devices using flash memory, such as solid-state drives (SSDs) and eMMCs. While these semiconductor storage devices are superior to hard disk drives (HDDs) in terms of access speed and quietness, they have a limited number of rewrite cycles. Therefore, in order to extend the life of the built-in flash memory, semiconductor storage devices use a distributed write technique called wear leveling, which is performed by the controller of the semiconductor storage device. Wear leveling involves replacing blocks to maximize the use of blocks with fewer write cycles. Therefore, when an information processing device is performing wear leveling, block erasure and data copying may occur during block replacement, which may degrade the performance (read / write performance) of the semiconductor storage device.

[0003] In nonvolatile semiconductor memory devices, a process called trimming is commonly used to improve performance degradation. Trim is a command that notifies the storage device of storage areas that are no longer needed by the OS (operating system) file system. Specifically, the file system that receives the trim command notifies the semiconductor memory device's controller of the areas that are no longer in use by a discard command via the OS's host controller.

[0004] By recognizing unused areas, the controller of a semiconductor memory device can collect only used areas (garbage collection) and perform wear leveling. By doing so, the controller of the semiconductor memory device can reduce the amount of data to be copied, the number of used blocks, and the overall number of rewrites. Therefore, by having the controller of the semiconductor memory device notify the semiconductor memory device of memory areas that are no longer needed using a trim command, the semiconductor memory device does not need to perform wear leveling on unnecessary areas, and performance degradation can be suppressed.

[0005] The discard command sent to the controller of the semiconductor storage device is not limited to when a trim operation is requested by the file system. Nonvolatile semiconductor storage devices in information processing devices are divided into units called partitions depending on their intended use, and in many cases, each partition is managed via an appropriate file system. The discard command is sent during formatting, inspection and repair of these partitions, and swap area activation, which temporarily saves information in main memory such as DRAM to the nonvolatile semiconductor storage device. The formatting process is, for example, "mkfs" in Linux (registered trademark). The inspection and repair process is, for example, "fsck" in Linux. The swap area activation process is, for example, "swapon" in Linux.

[0006] The size of the area processed by the discard command sent from the OS host controller to the semiconductor storage device controller varies depending on the eMMC model. For example, if the size of the area processed by the discard command is small, when the discard command is sent to the entire area, the number of discard command notifications from the OS host controller to the semiconductor storage device controller increases. This increases the number of times the host controller analyzes the received command, and the number of times the block processing unit that sent the command waits for command completion. As a result, it takes longer to complete the processing of a discard request from an application.

[0007] On the other hand, one method of executing the trim command is to issue a trim command each time a write occurs to a semiconductor storage device within the OS file system (sequential trim function). This sequential trim function is enabled by specifying a mount option called "discard" when mounting and using a partition on a semiconductor storage device.

[0008] The sequential trim function eliminates the need for applications to issue trim commands at their own discretion, but this may slow down overall operation speed. Also, some operating systems and file systems may not support the sequential trim function.

[0009] In addition to the sequential trim function, there is also a method in which an application can execute the external command "fstrim" that issues trim to a semiconductor memory device at any time. In this method, the application executes the fstrim command provided by the OS by specifying an area of ​​the semiconductor memory device, and the OS checks the unused area in the file system of the specified area and issues a trim command to the semiconductor memory device.

[0010] In this method, the application executes the fstrim command during idle or standby mode, in response to a user instruction, or at a specified time. For example, Patent Document 1 describes a device in which an application executes trim when it determines that a situation indicates a job interruption based on the usage status of the information processing device, such as job execution, and interrupts the trim command when the job interruption is resolved. [Prior art documents] [Patent documents]

[0011] [Patent Document 1] Japanese Patent Application Laid-Open No. 2015-141681 Summary of the Invention [Problem to be solved by the invention]

[0012] For eMMCs with small areas processed by the discard command, the number of discard commands increases. This means that not only the trimming process but also the partition formatting process, inspection and repair process, and swap area activation process increase in frequency, which means it takes longer for the discard command from the application to complete. This can result in longer startup and recovery times.

[0013] On the other hand, for eMMCs with large areas processed by the discard command, the number of discard commands is reduced. However, the I / O processing section of the eMMC is used for a long time while the discard command is being processed. Therefore, when other applications are running, they may not be able to access the I / O processing section of the eMMC and may be forced to wait for a long time.

[0014] The present invention has been made in view of the above, and aims to make a discard request with an area size set according to the operating status of the application. [Means for solving the problem]

[0015] The present invention is an information processing device having a non-volatile semiconductor storage means, comprising an operating system that sends requests to the semiconductor storage means, and a plurality of applications that can send requests to the operating system that include at least a disguard process that notifies the semiconductor storage means of areas that are no longer in use in the semiconductor storage means, wherein when the operating system receives a request that includes at least the disguard process from one of the plurality of applications, it sets the size of the processing area to be executed by the disguard process, and then sends an instruction to the semiconductor storage means to execute the disguard process according to the setting, and the first size set when a first request that includes at least the disguard process is received from a first application is larger than the second size set when a second request that includes at least the disguard process is received from a second application different from the first application. [Effects of the Invention]

[0016] According to the present invention, it is possible to issue a discard request with an area size set according to the operating status of the application. [Brief explanation of the drawings]

[0017] [Figure 1] Block diagram showing the configuration of an information processing device [Figure 2] An example of eMMC partition configuration [Figure 3] Controller software configuration diagram [Figure 4] Control flow chart for eMMC detection and overwrite discard size setting [Figure 5] Control flowchart when a discard request is made by an application [Figure 6] Sequence showing an example of MFP operation [Figure 7] Control flowchart when detecting eMMC and requesting a discard from an application [Figure 8]Sequence showing an example of MFP operation DETAILED DESCRIPTION OF THE INVENTION

[0018] Each embodiment of the present invention will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the scope of the invention as claimed, and not all of the combinations of features described in each embodiment are necessarily essential to the solution of the present invention. In this embodiment, an image processing device will be used as an example of an information processing device, but the present invention is not limited to this.

[0019] Example 1 <Device Description> FIG. 1 is a diagram illustrating an example of a hardware configuration of an information processing device 100. As shown in FIG.

[0020] The control unit 200, which includes the CPU 210, controls the overall operation of the information processing device 100. The CPU 210 reads control programs stored in the eMMC 219, a non-volatile semiconductor storage device, and executes various control processes such as reading control, printing control, and firmware update control. The eMMC 219 is also used as a work area and a user data area.

[0021] The ROM 291 is a read-only memory that stores the BIOS, fixed parameters, etc. of the information processing device 100. The RAM 212 is used as a temporary storage area such as the main memory and work area of ​​the CPU 210. The SRAM 213 is a non-volatile memory that stores setting values, image adjustment values, etc. required by the information processing device 100, and is designed so that data is not lost even when the power is turned back on. The SSD 218 has a file storage area for firmware updates and also stores image data, user data, etc.

[0022] In some cases, the SSD 218 is not installed. In such cases, the file storage area for firmware updates, image data, user data, etc. are all stored in the eMMC 219. The operation unit I / F 215 connects the operation unit 220 to the control unit 200. The operation unit 220 is equipped with a keyboard, an LCD display unit with touch panel functionality, etc. The printer I / F 216 connects the printer engine 221 to the control unit 200. A ROM (not shown) included in the printer engine 221 stores printer engine firmware 231. Image data to be printed by the printer engine 221 is transferred from the control unit 200 to the printer engine 221 via the printer I / F 216, and the printer engine 221 prints the image data on a recording medium. The scanner I / F 217 connects the scanner engine 222 to the control unit 200. A ROM (not shown) included in the scanner engine 222 stores scanner engine firmware 232. The scanner engine 222 reads an image on a document, generates image data, and inputs the image data to the control unit 200 via the scanner I / F 217 .

[0023] The network I / F card NIC214 connects the control unit 200 (information processing device 100) to the LAN 110. The NIC 214 transmits image data and information to external devices (e.g., an external server 250 or a PC 260) on the LAN 110, and conversely receives update firmware and various information from them. The external server 250 may exist on the Internet. The information processing device 100 may also be operated from a web browser (not shown) present on the PC 260.

[0024] Chipset 211 refers to a series of related integrated circuits. RTC 270 is a real-time clock, a chip dedicated to timekeeping. The external power supply 240 cuts off the power supply in response to an instruction from a control program stored in eMMC 219, but even if the external power supply 240 is not connected, the device can operate during sleep mode because it receives power from an internal battery (not shown).

[0025] This allows the chipset 211 to return from sleep mode when partial power is supplied to it. Conversely, in a shutdown state where no power is supplied to the chipset 211, the RTC 270 cannot operate. The CPU 281 executes the software program of the embedded controller 280 and performs some control within the information processing device 100. The RAM 282 is random access memory and is used to store programs and temporary data when the CPU 281 controls the information processing device 100. The LED 290 lights up as needed and is used to externally notify of software or hardware abnormalities.

[0026] <Partition configuration> 3 is a diagram showing an example of a partition configuration of a system area 300 in a semiconductor memory device eMMC 219 included in the information processing device 100 in FIG. 2.

[0027] The firmware storage area 301 stores software programs executed by the CPU 210 of the control unit 200. The swap area 302 is an area for temporarily saving information in the RAM 212, which is a limited resource. The image storage area 303 stores data that the information processing device 100 uses temporarily, such as when expanding compressed images. The application data storage area 304 stores applications and their setting values ​​that can be installed and used by the user after installation. The user data storage area 305 stores setting values ​​that can be changed by the user. The update work area 306 is used as a work area when updating software programs stored in the firmware storage area 301, such as by storing backup data in preparation for rollback if an error occurs during the update.

[0028] FIG. 3 is a diagram showing the configuration of controller software 330 that is executed by control unit 200 of information processing device 100 and controls the entire MFP.

[0029] The controller software 330 is composed of a controller application portion that realizes engine control, image processing, and job control unique to the MFP, and an operating system (hereinafter abbreviated as OS) 380. The controller software 330 is executed by the CPU 210.

[0030] The OS 380 is a kernel that is the core of system control, and it controls various hardware and provides various basic services to the controller software. The OS 380 is composed of a file system processing unit 381, a block device processing unit 382 that abstracts processing for devices that can be accessed in block units, and a device driver layer 383 that handles control specific to each device.

[0031] The eMMC host controller 384 included in the device driver 383 is a device driver that sends commands to the eMMC 219. When the OS 380 detects the eMMC 219 during initialization, the eMMC host controller 384 performs initialization appropriate for the detected eMMC 219. At this time, based on the TRIM_MULT setting in the EXTCSD area of ​​the eMMC 219, the eMMC host controller 384 determines an initial discard size 390 as the discard size per processing to be sent to the eMMC 219. The RAM 212 then stores the determined initial discard size 390. The discard size (discard size) is the size (processing area size) at which the discard process (discard process) is executed. The discard process is a process that notifies the semiconductor storage device controller of an area that is no longer in use due to a discard command (discard command).

[0032] On the other hand, it is also possible for an application to set the overwrite discard size 391 via, for example, the Linux kernel pseudo file system procfs. When the eMMC host controller 384 receives the setting of the overwrite discard size 391 from the application, it turns on the overwrite flag 392. Both the overwrite discard size 391 and the overwrite flag 392 are stored in the RAM 212.

[0033] When a request corresponding to a discard command is received from an application, the eMMC host controller 384 refers to the overwrite flag 392. If the overwrite flag 392 is on, the eMMC host controller 384 sets the discard size to the overwrite discard size 391 and turns off the overwrite flag 392. Exceptionally, if the overwrite discard size 391 is 0, the eMMC host controller 384 sets the discard size to the initial discard size 390 and turns off the overwrite flag 392.

[0034] That is, if an application sets the overwrite discard size 391 to 0, the eMMC host controller 384 uses the initial discard size 390 the next time a discard request is made. The eMMC host controller 384 receives requests from applications for file system creation processing, inspection / repair processing, swap area activation processing, and trim processing via the file system processing unit 381 and block device processing unit 382. The eMMC host controller 384 then sends a discard command to the eMMC 219, causing the eMMC 219 to execute trim processing. When processing based on the discard command is completed in the eMMC 219, the eMMC host controller 384 responds to the application that made the request via the file system processing unit 381 and block device processing unit 382.

[0035] The mount application 350 mounts the partition of the system area 300 in the eMMC 219, making the file system available to applications launched later. Specifically, the mount application 350 associates the partition of the system area 300 in the eMMC 219 detected by the OS 380 with a specific directory. This allows each application to operate files without being aware of the control of block devices such as the eMMC or HDD, or the control specific to the eMMC 219. In addition, the mount application 350 activates the swap area 302.

[0036] It also performs file system creation and inspection / repair processes that are used when a partition has not been created or when the file system is logically destroyed.

[0037] General applications 351 are generally applications that provide functions to the user. Among them, the operation control application displays the screen of the operation unit 220 and accepts input. The controller API 360 is an API layer for accepting control of the entire MFP and for status notification from the outside, accepting operation instructions from the application layer at a higher level, and issuing operation instructions to job and device control modules at a lower level. The controller API 360 also notifies of status changes occurring from jobs and devices at a lower level.

[0038] The device control application 352 receives device operation requests from each application and operates various hardware via a device driver 383. For example, in response to a request to display an operation unit from the operation control application, the device control application 352 controls the operation unit 220. When a copy job occurs, the device control application 352 issues operation instructions to the scanner engine 222 and printer engine 221 via the device driver 383.

[0039] The power control application 353 performs various power controls.

[0040] <Startup process overview> When the power switch of the external power supply 240 is turned on, power is supplied and the CPU 210 begins boot processing. The CPU 210 starts the printer engine 221 and the scanner engine 222. The CPU 210 then sequentially starts the control programs. At the very beginning of boot, the CPU 210 starts the mount application 350 and sets up a partition and file system in the system area 300 in the eMMC 219. Specifically, for example, if no partitions were created in the eMMC 219 during factory assembly, the CPU 210 creates a partition and generates a file system. The CPU 210 also performs the appropriate processing when a service technician requests the creation, inspection, and repair of a file system in the event of a boot failure due to logical corruption of the file system. The swap area 302 is always enabled at boot time, regardless of the conditions.

[0041] Before starting to set up the partitions and file systems of the system area 300, the mount application 350 sets the overwrite discard size 391 to be larger than the initial discard size 390. After completing the setup, the mount application 350 sets the overwrite discard size 391 to 0. During these startup processes, the fact that startup processes are in progress is displayed on the operation unit 220 via the UI control application to notify the user. Note that setting the discard size in the mount application 350 causes the eMMC host controller 384 to set the overwrite discard size 391.

[0042] <Shutdown process overview> When a power switch belonging to the external power supply 240 monitored by the CPU 210 is turned off, the power control application 353 receives a notification via the device driver 383 and starts shutdown processing. The power control application 353 issues termination requests to various applications and requests the device control application 352 to stop the power supply to hardware such as the printer engine 221 and scanner engine 222.

[0043] When the switch belonging to the external power supply 240 is turned off, the CPU 210 starts shutdown processing and notifies the user by displaying on the operation unit 220 that the shutdown processing is in progress. The CPU 210 then ends all jobs controlled by the control unit 200 and stops the printer engine 221 and the scanner engine 222. Furthermore, the CPU 210 causes trimming processing to be performed to discard unused areas of the eMMC 219.

[0044] Specifically, before the OS 380 causes the eMMC 219 to start the trimming process, the power control application 353 sets an overwrite discard size 391 that is larger than the initial discard size 390. Setting the discard size in the power control application 353 causes the eMMC host controller 384 to set the overwrite discard size 391. The eMMC host controller 384 then causes the eMMC 219 to perform the trimming process.

[0045] After the trimming process is complete, the overwrite discard size 391 is set to 0. The CPU 210 then writes the cache contents stored in the RAM 212 to the eMMC 219, disconnects the eMMC 219, and terminates all control programs. After the CPU 210 has completed the shutdown in this manner, the power supply is stopped.

[0046] FIG. 4 is a control flowchart of eMMC detection and overwrite discard size setting by the CPU 210 at startup.

[0047] The eMMC host controller 384 turns off the overwrite flag 392 used when overwriting the discard size, and initializes the overwrite discard size to 0 (S401).

[0048] Next, the eMMC host controller 384 detects the eMMC 219. Then, based on the TRIM_MULT setting in the EXTCSD area of ​​the eMMC 219, the eMMC host controller 384 calculates an initial discard size 390 as the discard size per processing to be sent to the eMMC 219 (S402).

[0049] Thereafter, the eMMC host controller 384 waits (S403) for a setting request for the overwrite discard size 391 from the application via procfs of the OS 380. When a setting request for the overwrite discard size 391 is received, the process proceeds to S404.

[0050] Next, the OS 380 turns on the overwrite flag and sets the overwrite discard size 391 to the size specified in S403 (S404).The OS 380 waits for the power to be turned off (S405).

[0051] If the power is not turned off, the next request to set the overwrite discard size 391 can be awaited in S403.

[0052] FIG. 5 is a control flowchart of the CPU 210 when a discard request is made by an application.

[0053] The eMMC host controller 384 waits for a discard request from an application (S501), and then checks whether the overwrite flag is on (S502).

[0054] If S502 is Yes, it is determined that the application has made a request to set the overwrite discard size 391, and the process proceeds to S503. If S502 is No, it is determined that the application has not made a request to set the overwrite discard size 391, and the process proceeds to S507.

[0055] The eMMC host controller 384 turns off the overwrite flag 392 (S503). This prevents the discard size from being set to the same size multiple times when multiple discard commands are executed in response to a discard request from an application.

[0056] Next, the eMMC host controller 384 checks whether the overwrite discard size 391 is greater than 0 (S504).

[0057] If S504 is Yes, the eMMC host controller 384 sets the discard size to the overwrite discard size 391 (S505). If S504 is No, the eMMC host controller 384 sets the discard size to the initial discard size 390 (S506).

[0058] Next, the eMMC host controller 384 executes a discard command (S507). That is, the eMMC host controller 384 sends a discard command to the eMMC 219.

[0059] FIG. 6 is a sequence showing an example of the operation of the MFP, and shows an example of operation in four phases: device detection at start-up, partition and file system setup at start-up, normal operation of the MFP, and shutdown.

[0060] In the device detection phase 601, the CPU 210 detects the eMMC 219, and the eMMC host controller 384 calculates the initial discard size 390 and sets it as the discard size.

[0061] The partition and file system setup phases 611 to 619 are examples in which the mount application 350 requests discard.

[0062] In 611 and 612, the mount application 350 sends a size setting notification (size setting request) to the OS 380 via procfs to set the overwrite discard size 391 that is larger than the initial discard size 390.

[0063] In 613, the mount application 350 requests the file system processing unit 381 to create a file system (mkfs), inspect and repair (fsck), and activate (swapon) the swap area 302. mkfs, fsck, and swapon are requested processes that include discard (processing). Hereafter, (processing) is omitted.

[0064] In 614, the file system processing unit 381 requests the eMMC host controller 384 to perform actual processing of creating a file system (mkfs), inspecting and repairing (fsck), and validating the swap area 302 (swapon).

[0065] In 615, the eMMC host controller 384 turns off the overwrite flag 392 and sets the discard size to the overwrite discard size 391.

[0066] In 616, the eMMC host controller 384 sends a discard command (an instruction to execute a discard process) to the eMMC 219. The discard command includes the set discard size.

[0067] In 617, the eMMC host controller 384 sends a read or write command (an instruction to execute a process other than a discard process) related to mkfs, fsck, or swapon. fsck is a request to inspect and repair a partition via a file system included in the OS. mkfs is a partition format process request to the eMMC 219. swapon is a process to enable the swap area 302.

[0068] In 618 and 619, the mount application 350 sends a size initialization notification (initial size setting request) to the OS 380 via procfs to set the overwrite discard size 391 to 0.

[0069] MFP normal operation phases 621 to 625 are examples in which the general application 351 requests discard.

[0070] In 621, the general application 351 requests processing including discarding the eMMC 219.

[0071] In 622, the eMMC host controller 384 is requested to perform the requested actual processing.

[0072] In 623, the eMMC host controller 384 turns off the overwrite flag 392 and sets the discard size to the initial discard size 390.

[0073] In 624, the eMMC host controller 384 sends a discard command to the eMMC 219. The discard command includes the set initial discard size.

[0074] In 625, the eMMC host controller 384 sends a Read or Write command to the eMMC 219 in association with a process other than discard.

[0075] Shutdown phases 631 to 639 are examples in which the power control application 353 requests discard.

[0076] In 631 and 632 , the power control application 353 makes a size setting request to the OS 380 via procfs to set the overwrite discard size 391 to be larger than the initial discard size 390 .

[0077] At 633, the power control application 353 requests a trim process (fstrim) for the eMMC 219.

[0078] In 634, the file system processing unit 381 requests the eMMC host controller 384 to actually perform the trimming process.

[0079] In 635, the eMMC host controller 384 turns off the overwrite flag 392 and sets the discard size to the overwrite discard size 391.

[0080] In 636, the eMMC host controller 384 sends a discard command to the eMMC 219. The discard command includes the set discard size.

[0081] In 637, the eMMC host controller 384 sends a Read or Write command to the eMMC 219 related to the trimming process other than discard.

[0082] In 638 and 639, the mount application 350 sets the overwrite discard size 391 to 0 for the OS 380 via procfs.

[0083] As described above, in this embodiment, it is possible to request a discard area size according to the operating status of an application. For example, if an application changes the discard size when necessary, it is possible to speed up discarding during startup or shutdown, when users cannot operate the system or accept jobs. On the other hand, during normal operation, when users can operate the system and accept jobs, it is possible to maintain settings that prevent long I / O wait times due to discard requests from specific applications. This makes it possible to ensure user convenience.

[0084] Example 2 In the first embodiment, an example is shown in which an application sets the overwrite discard size 391. However, in the second embodiment, an example is shown in which the OS 380 receives a discard request from an application and sets the discard size 391 according to the type of application of the sender.

[0085] FIG. 7 is a control flowchart of the CPU 210 when the CPU 210 detects an eMMC at startup and when an application issues a discard request.

[0086] The eMMC host controller 384 detects the eMMC 219. Based on the TRIM_MULT setting in the EXTCSD area of ​​the eMMC 219, the eMMC host controller 384 calculates the initial discard size 390 as the discard size per processing to be sent to the eMMC 219 (S701).

[0087] Next, the eMMC host controller 384 waits for a discard request from the application (S702). Next, the eMMC host controller 384 checks whether the discard request is to create a file system (mkfs) (S703). A specific check cannot be made by a program in the OS 380 alone. Therefore, the CPU 210 makes a judgment based on the specified size in the mkfs program called by the application. If the answer is Yes, proceed to S708. If the answer is No, the eMMC host controller 384 proceeds to S704 and checks the type of request.

[0088] Next, the eMMC host controller 384 checks whether the discard request is for checking and repairing the file system (fsck) (S704). A specific check cannot be made by a program in the OS 380 alone. Therefore, the CPU 210 makes a judgment based on the specified size in the fsck program called by the application. If the answer is Yes, proceed to S708. If the answer is No, proceed to S705 to check the type of request.

[0089] Next, the eMMC host controller 384 checks whether the discard request is to enable (swapon) the swap area 302 (S705). Specifically, for example, the file system processing unit 381 makes this determination at the point where it accepts the discard request for the swap area. If the answer is Yes, proceed to S708. If the answer is No, proceed to S706 to check the type of request.

[0090] Next, the eMMC host controller 384 checks whether the discard request is a trim process for the eMMC 219 (S706). Specifically, this is determined at the point in the eMMC host controller 384 where the IOCTL of FITRIM executed from the fstrim command, for example, is accepted. If the answer is Yes, proceed to S708. If the answer is No, proceed to S707.

[0091] In S707, the eMMC host controller 384 sets the discard size to the initial discard size 390. In S708, the eMMC host controller 384 sets the discard size to a predetermined overwrite discard size 391. In S709, the eMMC host controller 384 executes a discard command. That is, the eMMC host controller 384 sends a discard command to the eMMC 219.

[0092] FIG. 8 is a sequence showing an example of the operation of the MFP, and shows an example of operation in four phases: device detection at start-up, partition and file system setup at start-up, normal MFP operation, and shutdown.

[0093] In the device detection phase 801, the CP 210 detects the eMMC 219, and the eMMC host controller 384 calculates the initial discard size 390 and sets it as the discard size.

[0094] The partition and file system setup phases 811 to 816 are examples in which the mount application 350 requests discard.

[0095] In 811, the mount application 350 requests the file system processing unit 381 to create a file system (mkfs), inspect and repair (fsck), and activate the swap area 302 (swapon).

[0096] In 812 , the file system processing unit 381 requests the eMMC host controller 384 to set the overwrite discard size 391 that is larger than the initial discard size 390 .

[0097] In 813, the eMMC host controller 384 turns off the overwrite flag 392 and sets the discard size to the overwrite discard size 391. The discard command includes the set discard size.

[0098] In 814, the file system processing unit 381 requests the eMMC host controller 384 to perform actual processing of creating a file system (mkfs), inspecting and repairing (fsck), and validating the swap area 302 (swapon).

[0099] In 815, the eMMC host controller 384 sends a discard command to the eMMC 219.

[0100] In 816, the eMMC host controller 384 sends to the eMMC 219 read and write commands related to creating a file system (mkfs), checking and repairing (fsck), and enabling the swap area 302 (swapon).

[0101] MFP normal operation phases 821 to 825 are examples in which the general application 351 requests discard.

[0102] In 821, the general application 351 requests a process involving discarding the eMMC 219.

[0103] In 822 , the file system processing unit 381 requests the eMMC host controller 384 to set the initial discard size 390 .

[0104] In 823, the eMMC host controller 384 turns off the overwrite flag 392 and sets the discard size to the initial discard size 390.

[0105] In 824, the file system processing unit 381 requests the eMMC host controller 384 to actually process the process involving discarding.

[0106] In 825, the eMMC host controller 384 sends a discard command to the eMMC 219. The discard command includes the set initial discard size.

[0107] In 826, the eMMC host controller 384 sends a Read or Write command to the eMMC 219 for processing involving discard.

[0108] Shutdown phases 831 to 836 are examples in which the power control application 353 requests discard.

[0109] In 831, the power control application 353 requests the file system processing unit 381 to perform a trim process (fstrim).

[0110] In 832 , the file system processing unit 381 requests the eMMC host controller 384 to set the overwrite discard size 391 that is larger than the initial discard size 390 .

[0111] In 833, the eMMC host controller 384 turns off the overwrite flag 392 and sets the discard size to the overwrite discard size 391.

[0112] In 834, the file system processing unit 381 requests the eMMC host controller 384 to actually perform the trimming process.

[0113] In 835, the eMMC host controller 384 sends a discard command to the eMMC 219. The discard command includes the set discard size.

[0114] In 836, the eMMC host controller 384 sends a read or write command to the eMMC 219 related to the trim process other than discard.

[0115] As explained above, in this embodiment, it is also possible to make a discard request of an area size according to the operating status of an application. For example, if the OS changes the discard size when necessary, it is possible to achieve faster discard in file system formatting, inspection and repair, swap area activation, and trim processing. On the other hand, during normal operation when the user can perform operations and accept jobs, it is possible to maintain settings that prevent long I / O wait times due to discard requests from specific applications. This makes it possible to ensure user convenience.

[0116] (Other embodiments) While various examples and embodiments of the present invention have been shown and described, the spirit and scope of the present invention is not limited to the specific descriptions within this specification.

[0117] The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiments to a system or device via a network or a storage medium, and having one or more processors in the computer of the system or device read and execute the program. It can also be realized by a circuit (e.g., ASIC) that realizes one or more functions. [Explanation of symbols]

[0118] 100 Information processing device 210 CPU 212 RAM 219 eMMC

Claims

1. An information processing device having a nonvolatile semiconductor storage means, an operating system that sends requests to the semiconductor storage means; a plurality of applications capable of sending a request to the operating system including at least a disguard process for notifying the semiconductor storage means of an area that is no longer in use in the semiconductor storage means; When the operating system receives a request including at least the Disguard process from any one of the plurality of applications, it sets a size of a processing area to be executed in the Disguard process, and then transmits an instruction to execute the Disguard process according to the setting to the semiconductor storage means; An information processing device characterized in that the first size set when a first request including at least the disguard processing is received from a first application is wider than the second size set when a second request including at least the disguard processing is received from a second application different from the first application.

2. The first application sends a size setting request to the operating system specifying a size of a processing area to be executed by the Disguard process; 2 . The information processing apparatus according to claim 1 , wherein the operating system sets a size of a processing area to be executed in the Disguard process based on the first size included in the size setting request.

3. The information processing device described in claim 1, characterized in that the operating system determines the size of the processing area to be executed by the Disguard process based on the type of application that sent the request that includes at least the Disguard process, and sets the determined size as the size of the processing area to be executed by the Disguard process.

4. 4. The information processing apparatus according to claim 1, wherein the second size is an initial size that is pre-stored in the operating system.

5. 5. The information processing apparatus according to claim 1, wherein the first application includes a power control application that controls power consumption of the information processing apparatus.

6. 6. The information processing apparatus according to claim 5, wherein when the first application is the power control application, the request including at least the disguard process sent from the first application to the operating system is a request for a trim process.

7. 7. The information processing apparatus according to claim 5, wherein the power control application transmits a request including at least the disguard process to the operating system when the information processing apparatus is shut down.

8. 5. The information processing apparatus according to claim 1, wherein the first application includes a mount application for mounting a partition of the semiconductor storage means.

9. 9. The information processing apparatus according to claim 8, wherein when the first application is the mount application, the request including at least the disguard process is a partition format process request via a file system included in the operating system.

10. 9. The information processing apparatus according to claim 8, wherein when the first application is the mount application, the request including at least the disguard process is a request for partition inspection and repair via a file system included in the operating system.

11. 11. The information processing apparatus according to claim 8, wherein the mount application transmits a request including at least the disguard process to the operating system when the information processing apparatus is started.

12. 12. The information processing apparatus according to claim 1, wherein the second application includes an operation control application.

13. 13. The information processing apparatus according to claim 12, wherein when the second application is the operation control application, the request including at least the disguard process is a request to execute only the disguard process.

14. An information processing device as described in any one of claims 1 to 13, characterized in that the operating system receives a request from one of the plurality of applications that includes at least the disguard processing and sends an instruction to execute the disguard processing, and then sends to the semiconductor storage means an instruction to execute the processing excluding the disguard processing of the request received from one of the plurality of applications.

15. 15. The information processing apparatus according to claim 1, further comprising at least one processor that executes the operating system and the plurality of applications.

16. A control program for an information processing device having a nonvolatile semiconductor storage means, an operating system that sends requests to the semiconductor storage means; a plurality of applications capable of sending a request to the operating system including at least a disguard process for notifying the semiconductor storage means of an area that is no longer in use in the semiconductor storage means; When the operating system receives a request including at least the Disguard process from any one of the plurality of applications, it sets a size of a processing area to be executed in the Disguard process, and then transmits an instruction to execute the Disguard process according to the setting to the semiconductor storage means; A control program for an information processing device, characterized in that the first size set when a first request including at least the disguard processing is received from a first application is wider than the second size set when a second request including at least the disguard processing is received from a second application different from the first application.

Citation Information

Patent Citations

  • Control method of memory system, information processing apparatus, and program

    JP2012221251A

  • Information processing apparatus, control method of the same, and program

    JP2015141681A

  • Information processing apparatus, control method thereof, and program

    JP2021018595A

  • Information-processing device, information-processing system, memory management method, and program-recording medium

    WO2015182122A1