Controller

By introducing multiple processing units and split tables into the controller, the waiting problem when the controller process accesses the input and output devices is solved, and more efficient task processing real-time is achieved.

CN115956238BActive Publication Date: 2025-07-29KK TOSHIBA
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180051417.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-09-17
Filing Date
2021-06-08
Publication Date
2025-07-29
Estimated Expiration
2041-06-08

AI Technical Summary

Technical Problem

In the prior art, when the controller process accesses the input and output device, other controller processes need to wait, resulting in delayed task processing and affecting real-time.

Method used

The controller includes a plurality of processing units, including a table storage unit, a segmentation unit and an output processing unit. By storing the correspondence between the access waiting time and the data size threshold by dividing the table, the access request data is dynamically adjusted to reduce the waiting time.

Benefits of technology

Through data segmentation and dynamic adjustment, the waiting time for accessing the input and output devices is reduced, and the real-time and efficiency of task processing are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115956238B_ABST
    Figure CN115956238B_ABST
Patent Text Reader

Abstract

The controller of the embodiment is connected to an input / output device connected to a group of devices in an industrial plant, and includes a plurality of processing units that execute processing in a prescribed processing unit. Each processing unit refers to a segmentation table showing the correspondence between the waiting time for accessing an input / output device that is the destination of the access request data and the access segmentation size threshold, which is a data size threshold for determining whether to segment the data requested to be output according to the access request data. When the size of the data requested to be output according to the access request data to be output in advance is larger than the access segmentation size threshold corresponding to the current access waiting time, the data requested to be output is segmented into a size equal to or less than the access segmentation size threshold, and the access request data is updated.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present invention relate to a controller. Background Art

[0002] Conventionally, controllers equipped with CPU (Central Processing Unit) modules are connected to the input / output devices of equipment in industrial plants. Furthermore, with the recent advancement of multi-core CPUs, there are also configurations where controller processes are executed independently by multiple CPU cores, with each controller process accessing the same input / output device.

[0003] Due to the time constraints of the controlled devices, the controller processes executed by the CPU cores must be real-time and perform task processing in a fixed cycle. Furthermore, the CPU cores, through the controller processes, perform input and output processing of I / O data, the target of computation, prior to the fixed cycle processing. Summary of the Invention

[0004] However, in the conventional technology, when one controller process accesses an I / O device during I / O processing, other controller processes cannot access that I / O device and must wait. This delay in I / O processing caused by controller process wait time also delays task processing, leaving room for improvement in real-time performance.

[0005] Therefore, an object of an embodiment of the present invention is to provide a controller connected to an input / output device connected to a group of equipment in an industrial plant, capable of reducing the waiting time for access from a plurality of processing units that execute processing in predetermined processing units to the input / output device.

[0006] A controller according to an embodiment is connected to input / output devices of a group of equipment in an industrial plant. The controller includes multiple processing units that execute processing in predetermined processing units. Each processing unit includes a table storage unit, a splitting unit, an output processing unit, and an output processing unit. The table storage unit stores a splitting table that indicates the correspondence between the waiting time for accessing the input / output device, which is the destination of access request data, and an access split size threshold, which is a data size threshold used to determine whether to split data requested to be output according to the access request data. The splitting unit refers to the splitting table and, if the size of the data requested to be output according to the scheduled access request data is larger than the access split size threshold corresponding to the current access waiting time, splits the requested output data into a size smaller than the access split size threshold and updates the access request data. When the output processing unit outputs the access request data to the input / output device in the input / output processing of the previous stage of task processing executed by the task processing unit at a predetermined period, if the access request data has been updated by the splitting unit, the output processing unit outputs the updated access request data to the input / output device. The input processing unit inputs data corresponding to the access request data from the input / output device. BRIEF DESCRIPTION OF THE DRAWINGS

[0007] Figure 1 This is a diagram showing an example of the overall configuration of the control system according to the first embodiment.

[0008] Figure 2 This is a block diagram showing an example of the functional configuration of the controller according to the first embodiment.

[0009] Figure 3 This is a diagram showing an example of a partition table according to the first embodiment.

[0010] Figure 4 This is a flowchart showing an example of processing performed by the CPU core in the first embodiment.

[0011] Figure 5 This is a diagram for explaining input and output processing of the CPU core in the first embodiment.

[0012] Figure 6 This is an explanatory diagram of the access request data division process of the CPU core in the first embodiment.

[0013] Figure 7 This is an explanatory diagram of the IOCTL statistical information acquisition process in the first embodiment.

[0014] Figure 8 This is an explanatory diagram of the access division size threshold setting process in the first embodiment.

[0015] Figure 9 It is an explanatory diagram of the task execution process of the first embodiment.

[0016] Figure 10 It is a flowchart showing an example of the process performed by the CPU core of the second embodiment.

[0017] Figure 11 It is an explanatory diagram of the task execution process of the third embodiment. Detailed Embodiment

[0018] Hereinafter, embodiments of the controller of the present invention will be described with reference to the accompanying drawings.

[0019] (First Embodiment)

[0020] Figure 1 It is a diagram showing an example of the overall configuration of the control system S of the first embodiment. The control system S of the present embodiment is, for example, a system applicable to an industrial plant. As Figure 1 shown, the control system S includes a PC (Personal Computer) 1 and a controller 2.

[0021] The PC 1 is a computer for a user to generate an application program executed in the controller 2 or monitor the operating status of the controller 2. The PC 1 has an engineering tool 11 as software. The engineering tool 11 is software for system construction, programming, monitoring, information collection, monitoring, etc. related to the control system S. The PC 1 manages the controller 2 through the functions of the engineering tool 11.

[0022] The controller 2 is connected to an I / O device 3 (input / output device) connected to a device group in an industrial plant through a communication path 5, and includes a plurality of processing units (for example, CPU cores) that execute processing in a prescribed processing unit (for example, thread unit). The controller 2 includes multi-core CPUs 20, 21, a RAM (Random Access Memory) 22, an HDD (Hard Disk Drive) 23, a tool interface 24, an I / O interface 25, and a bus 26.

[0023] The multi-core CPUs 20, 21 are CPUs having a plurality of CPU cores (hereinafter also simply referred to as "cores"). The multi-core CPU 20 includes a core A301 and a core B302. The multi-core CPU 21 includes a core C303 and a core D304. In addition, the number of cores respectively included in the multi-core CPUs 20, 21 is an example and is not limited to 2. The multi-core CPUs 20, 21 control the entire controller 2. The RAM 22 is a work area for the multi-core CPUs 20, 21 and is a writable storage medium.

[0024] The HDD 23 stores control software, a startup handler, application programs, an OS (Operating System), etc.

[0025] The tool interface 24 is an interface for transmitting and receiving information between the PC 1 via the communication path 4. The communication path 4 is a communication path that connects the PC 1 and the controller 2, and is, for example, a high-speed communication path such as Ethernet (registered trademark) or USB (Universal Serial Bus), but is not limited thereto.

[0026] The I / O interface 25 is an interface for transmitting and receiving information between the I / O device 3 via the communication path 5. The communication path 5 is a communication path that connects the controller 2 and the I / O device 3. In addition, the bus 26 is an internal data transfer path of the controller 2.

[0027] The I / O device 3 is a device for inputting and outputting to / from a group of devices constituting an industrial plant. As the I / O device 3, for example, there are input devices (AI (Analog Input) devices, DI (Digital Input) devices) that input signals from sensors provided in a controlled facility, and output devices (AO (Analog Output) devices, DO (Digital Output) devices) that output signals to actuators of the controlled facility. In Figure 1 one, one I / O device 3 and one I / O interface 25 are described, but it is not limited thereto. For example, depending on the configuration of the factory, the number of I / O devices 3 and I / O interfaces 25 is different. Among them, a set of one I / O device 3 and one I / O interface 25 will be mainly described below.

[0028] Figure 2 is a block diagram showing an example of the functional configuration of the controller 2 according to the first embodiment. The controller 2 implements the controller thread 41A as a controller process that operates through the core A301 of the multi-core CPU 20. In addition, the controller 2 implements the controller thread 41B as a controller process that operates through the core B302 of the multi-core CPU 20. Hereinafter, among the controller threads 41A and 41B, mainly the controller thread 41A will be described as a representative.

[0029] Furthermore, the controller 2 implements the controller thread 41C as a controller process that operates through the core C303 of the multi-core CPU 21. In addition, it implements the controller thread 41D as a controller process that operates through the core D304 of the multi-core CPU 21.

[0030] The controller thread 41A includes an input processing unit 421, an output processing unit 422, and a driver API (Application Program Interface) 43 as its functional components. The driver API 43 includes an acquisition unit 430, a task processing unit 431, a division unit 432, a change unit 433, an adjustment unit 434, a division table storage unit 435, and a processing priority threshold storage unit 436. In addition, the controller threads 41B, 41C, and 41D are also configured in the same way as the controller thread 41A, and the description thereof is omitted.

[0031] The division table storage unit 435 and the processing priority threshold storage unit 436 are implemented by, for example, a RAM 22 ( Figure 1 ), an HDD 23 ( Figure 1 ) (details will be described later).

[0032] The division table storage unit 435 stores a division table that represents the correspondence between the waiting time for accessing the I / O device 3 and the access division size threshold, which is a threshold for the data size used to determine whether to divide the data requested for output according to the access request data output as scheduled.

[0033] Here, Figure 3 is a diagram showing an example of the division table of the first embodiment. The division table is a table that defines the access division size threshold for each waiting time of access. For example, the longer the waiting time of access, the smaller the access division size threshold.

[0034] Return Figure 2 , and the input processing unit 421 performs input processing of various information. The input processing unit 421 inputs data corresponding to the access request data from the I / O device 3, for example.

[0035] The output processing unit 422 performs output processing of various information. The output processing unit 422 outputs access request data to the I / O device 3, for example, in the input / output processing at the front stage of the task processing executed by the task processing unit 431 at a predetermined cycle. At this time, when the access request data is updated by the division unit 432, the output processing unit 422 outputs the updated access request data to the I / O device 3. For the remaining part of the data requested for output, it is also updated by the division unit 432 as needed, and the output to the I / O device 3 is requested.

[0036] The acquisition unit 430 acquires various information from the controller thread 41, the device driver 52, the I / O device 3, etc.

[0037] The task processing unit 431 performs predetermined task processing based on the data acquired from the I / O device 3.

[0038] The splitting unit 432 refers to the splitting table stored in the splitting table storage unit 435. When the size of the data requested to be output according to the access request data to be output as scheduled is larger than the access splitting size threshold corresponding to the current access waiting time, the data requested to be output is split into a size equal to or less than the access splitting size threshold, and the access request data is updated.

[0039] In addition, the controller 2 includes a statistical information storage unit 210. The statistical information storage unit 210 is implemented by, for example, a RAM 22 ( Figure 1 ), an HDD 23 ( Figure 1 ). The statistical information storage unit 210 stores statistical information, which includes the average waiting time of access request data for the I / O device 3 and the average processing time of the access request data.

[0040] For example, Figure 7 the IOCTL statistical information 55 is an example of the statistical information. The IOCTL statistical information 55 is information including the IOCTL average waiting time 551 for each CPU core A - D, the overall IOCTL average waiting time 552, the IOCTL average processing time 553 for each CPU core A - D, and the overall IOCTL average processing time 554.

[0041] Return Figure 2 , and the changing unit 433 changes the access splitting size threshold in the splitting table. The changing unit 433 changes the access splitting size threshold in the splitting table based on the statistical information ( Figure 7 the IOCTL statistical information 55) stored in the statistical information storage unit 210 (details will be described later). The adjustment unit 434 will be described in the third embodiment.

[0042] Figure 4 is a flowchart showing an example of the processing performed by the CPU core of the first embodiment. In addition, the core A 301, the core B 302, the core C 303, and the core D 304 each perform Figure 4 the processing, but the core A 301 is taken as the representative action body.

[0043] When the core A 301 sends (outputs) access request data to the I / O device 3, first, in step S101, the splitting unit 432 refers to the splitting table stored in the splitting table storage unit 435, and determines whether the size of the data requested to be output according to the access request data to be output as scheduled is larger than the access splitting size threshold corresponding to the current access waiting time. If it is, the process proceeds to step S102; if not, the process proceeds to step S103.

[0044] In step S102, the splitting unit 432 splits the data requested to be output according to the access request data into a size below the access split size threshold, and updates the access request data. Then, in step S103, the output processing unit 422 outputs the access request data to the I / O device 3. When passing through step S102, the output processing unit 422 outputs the access request data updated in step S102 to the I / O device 3.

[0045] Hereinafter, a specific example will be further described. Figure 5 FIG. is an explanatory diagram of input / output processing of the CPU core in the first embodiment. In the controller 2, a user process space 40 and a kernel space 51 based on the OS 50 are generated in the RAM 22. Then, in the user process space 40, the controller process operating on the CPU module is divided into a plurality of controller threads 41A, 41B, 41C, 41D. For example, core A 301 implements the controller thread 41A, core B 302 implements the controller thread 41B, core C 303 implements the controller thread 41C, and core D 304 implements the controller thread 41D.

[0046] In addition, in the present embodiment, each of the two cores (cores A to D) mounted on the two multi-core CPUs 20 and 21 implements each controller thread, but it is not limited thereto. For example, each controller thread may be implemented by four cores mounted on one multi-core CPU, or may be implemented by a multi-processor configuration in which the CPU itself is separated into four. In addition, the processing unit is not limited to the controller thread unit. For example, it may also be the controller process unit.

[0047] Hereinafter, for simplicity of explanation, the controller thread is sometimes denoted as the acting body. In addition, when the same actions are performed by the controller threads 41A, 41B, 41C, and 41D, the explanation will sometimes be made with the controller thread 41A as a representative. In addition, the controller thread is also simply referred to as "thread".

[0048] The controller thread 41A periodically repeats the task execution process so as to be the task execution time according to the set control cycle. Here, Figure 9 FIG. is an explanatory diagram of the task execution process of the first embodiment. As Figure 9 shown, the task execution process 91 includes an input / output process 92, a task process 93, and a synchronization process 94. Such a task execution process 91 is periodically repeated.

[0049] Return Figure 5 to Figure 9), when accessing the I / O device 3, the driver API 43 issues an IOCTL (system call) to the device driver 52. The device driver 52 receives the IOCTL (system call) and accesses the I / O device 3 through the IOCTL process.

[0050] In addition, the device driver 52 has a device object 53 and a driver object 56. The device object 53 has an IOCTL waiting queue 54 and IOCTL statistics 55.

[0051] The driver object 56 has an IOCTL entry 57. The IOCTL entry 57 stores information such as PIO (Programmed I / O) read, PIO write, DMA (Direct Memory Access) read, and DMA write.

[0052] The device driver 52 cannot interrupt the access after starting to access the I / O device 3. That is, while the device driver 52 is executing the IOCTL processing of one thread, the IOCTL processing of other threads is stored in the IOCTL waiting queue 54 and waits.

[0053] When the ongoing IOCTL processing is completed, the device driver 52 dequeues the thread at the head of the IOCTL wait queue 54 and starts the IOCTL processing. Furthermore, the processing by the device driver 52 is performed while switching to other threads is prohibited. Therefore, if the waiting time for IOCTL processing increases, the scan execution time of the controller thread is delayed.

[0054] The driver API 43 maintains a partition table ( Figure 3 ). The following also refers to Figure 6 . Figure 6 This is an explanatory diagram of the access request data division process of the CPU core in the first embodiment. In addition, the thread priority threshold 64 is explained in the second embodiment.

[0055] When a function call of the driver API 43 is made from the controller thread 41 ( Figure 6 In S1 , the driver API 43 saves the requested access size 61 (the size of data requested to be output according to the access request data) into the remaining access size 63 .

[0056] Next, the driver API 43 compares the requested access size 61 with the access segment size threshold 62 (see Figure 3 ) comparison, if the requested access size 61 is larger than the access segment size threshold 62, the requested access size 61 is changed to the size of the access segment size threshold 62 ( Figure 6of S2), and requests an IOCTL process from the device driver 52 ( Figure 6 of S3).

[0057] When the processing of the device driver 52 is completed and the operation returns to the driver API 43 ( Figure 6 after S4), the driver API 43 subtracts the requested access size 61 from the remaining access size 63. If there is a remaining access size 63, the remaining access size 63 is set to the requested access size 61, and the IOCTL process is repeatedly requested from the device driver 52.

[0058] In addition, if the operation of the device driver 52 is completed and the operation returns to the driver API 43, it is possible to switch the execution to another thread with a higher execution priority. As described above, the driver API 43 divides the data requested to be output according to the access request data from the controller thread 41 to the I / O device 3 into access sizes below the access division size threshold 62, updates the access request data, and requests it to the device driver 52. Thus, when access conflicts to the I / O device 3 occur among the controller threads 41, it is possible to reduce the waiting time of the controller thread 41 with a higher execution priority due to the controller thread 41 with a lower execution priority. In addition, after Figure 6 S4, data from the I / O device 3 is forwarded from the driver API 43 to the controller thread 41 ( Figure 6 of S5).

[0059] Hereinafter, also with reference to Figure 7 and Figure 8 . Figure 7 is an explanatory diagram of the acquisition process of the IOCTL statistical information in the first embodiment. Figure 8 is an explanatory diagram of the setting process of the access division size threshold in the first embodiment. The driver API 43 includes an access division size threshold setting API 72 (change unit 433). When the controller thread 41 calls the access division size threshold setting API 72 ( Figure 8 of S21, S22), the access division size threshold setting API 72 sets the value specified in the parameter as the access division size threshold 62. Thus, even in the RUN (running) state where the controller thread 41 has started the task process 93 ( Figure 9 ), it is possible to dynamically change the access division size threshold 62. In addition, as Figure 8 shows, the driver API 43 includes an IOCTL average waiting time acquisition API 81 (acquisition unit 430).

[0060] In addition, the access division size threshold 62 can be changed more specifically as follows. As Figure 7As shown, the device driver 52 holds information including the IOCTL average waiting time 551 for each CPU core A - D, the overall IOCTL average waiting time 552, the IOCTL average processing time 553 for each CPU core A - D, and the overall IOCTL average processing time 554 as the IOCTL statistics 55, and updates the IOCTL statistics 55 at the end of IOCTL processing.

[0061] In addition, the driver API 43 has an IOCTL statistics acquisition API 71 (acquisition unit 430). When a request is made from the controller thread 41 to acquire the IOCTL statistics ( Figure 7 at S11), it acquires the IOCTL statistics 55 held by the device driver 52 ( Figure 7 at S12, S13), and responds to the controller thread 41 ( Figure 7 at S14). Thus, the controller thread 41 can identify the IOCTL statistics 55.

[0062] The access division size threshold setting API 72 of the controller thread 41 can calculate an appropriate access division size threshold 62 based on the overall IOCTL average waiting time 552 and the overall IOCTL average processing time 554 identified by using the above functions, as well as the upper limit time of IOCTL processing preset corresponding to the task execution time of the controller thread 41 ( Figure 9 the time of the task execution process 91), and dynamically change the access division size threshold 62 in the RUN state.

[0063] Like this, according to the controller 2 of the first embodiment, for the access request data to the I / O device 3, when the size of the data requested to be output is larger than the access division size threshold corresponding to the current access waiting time, it is divided so that the size becomes below the access division size threshold and the access request data is updated, thereby being able to reduce the access waiting time.

[0064] In addition, the access division size threshold can be dynamically changed to an appropriate value based on statistical information.

[0065] (Second Embodiment)

[0066] Next, the second embodiment will be described. Regarding the same matters as in the first embodiment, the description will be appropriately omitted. In Figure 2 it, the division unit 432 refers to the division table in the division table storage unit 435. When the size of the data requested to be output according to the access request data to be output as scheduled is larger than the access division size threshold corresponding to the current access waiting time, and the priority of the processing of the access request data is the processing priority threshold storage unit 436 (Figure 2 ) the priority threshold value corresponding to this process stored therein Figure 6 When it is below the thread priority threshold value (64) of, the data requested to be output in accordance with the access request data is divided into sizes below the access division size threshold value and the access request data is updated.

[0067] Figure 10 is a flowchart showing an example of the process performed by the CPU core of the second embodiment. Similar to the case of Figure 4 , the core A301 is taken as the acting body.

[0068] When the core A301 sends (outputs) access request data to the I / O device 3, first, in step S100, the division unit 432 refers to the process priority threshold storage unit 436 to determine whether the priority of the thread to be processed is below the priority threshold value. If so, it proceeds to step S101, and if not, it proceeds to step S103.

[0069] In step S101, the division unit 432 refers to the division table stored in the division table storage unit 435 to determine whether the size of the data requested to be output in accordance with the access request data is larger than the access division size threshold value corresponding to the current access waiting time. If so, it proceeds to step S102, and if not, it proceeds to step S103.

[0070] In step S102, the division unit 432 divides the data requested to be output in accordance with the access request data into sizes below the access division size threshold value and updates the access request data. Then, in step S103, the output processing unit 422 outputs the access request data to the I / O device 3. When passing through step S102, the output processing unit 422 outputs the access request data updated in step S102 to the I / O device 3.

[0071] In this way, according to the controller 2 of the second embodiment, the process priority threshold storage unit 436 (driver API 43) holds the threshold value of the thread priority. When the driver API 43 is executed, the priority of the executing thread is compared with the threshold value. When the priority of the executing thread is below the threshold value, the data requested in accordance with the access request data is divided into sizes below the access division size threshold value 62, the access request data is updated, and then a request is made to the device driver 52. As a result, the overhead of executing high-priority threads is reduced, and a reduction in the access waiting time with high effectiveness can be achieved.

[0072] (Third Embodiment)

[0073] Next, the third embodiment will be described. Regarding the same matters as those in the first embodiment, the description will be appropriately omitted. InFigure 2 In this case, the adjustment unit 434 adjusts the repetition timing of the processing cycles of the respective multiple threads based on the statistical information ( Figure 7 IOCTL statistical information 55) stored in the statistical information storage unit 210 to reduce the average waiting time.

[0074] Figure 11 It is an explanatory diagram of the task execution process of the third embodiment. Figure 11 (a) thereof represents the processing cycle of CPU core A. Here, the adjustment unit 434 adjusts the start timing of the task execution process of CPU core B based on the statistical information stored in the statistical information storage unit 210 to reduce the average waiting time.

[0075] Figure 11 (b) thereof represents the processing cycle of CPU core B. Compared with Figure 11 the start timing 101 of the task execution process of CPU core A in (a) thereof, Figure 11 the start timing 103 of the task execution process of CPU core B in (b) thereof is adjusted by an amount of the start adjustment time 102 to be delayed.

[0076] The adjustment unit 434 can calculate, for example, the remainder obtained by dividing “the core number of the process action × the overall IOTCL average waiting time” by “the task execution time - the overall IOTCL average waiting time - the overall IOTCL average processing time” as the start adjustment time 102.

[0077] In this way, according to the controller 2 of the third embodiment, by adjusting the start timing of the task execution process for each thread based on the IOCTL statistical information 55 to reduce the average waiting time, it is possible to reduce the conflict of input / output processing between the controller threads and further reduce the access waiting time.

[0078] In addition, the program executed in the controller 2 of each of the above embodiments is recorded on an HDD or the like. This program may also be configured to be provided in the form of a file that can be installed or executed and recorded on a computer-readable recording medium such as a CD-ROM, a floppy disk, a CD-R, a DVD, etc. Further, it may also be configured to store this program on a computer connected to a network such as the Internet and provide it by downloading via the network. In addition, it may also be configured to provide or distribute this program via a network such as the Internet. In addition, it may also be configured to pre-load this program into a ROM or the like and provide it.

[0079] The program is constructed as a module including the above-mentioned parts (input processing part 421, output processing part 422, acquisition part 430, task processing part 431, splitting part 432, changing part 433, adjustment part 434), and as actual hardware, the multi-core CPU 20, 21 reads the control processing program from the above-mentioned HDD and executes it, thereby loading the above-mentioned parts onto the main storage device and generating the above-mentioned parts on the main storage device.

[0080] While several embodiments of the present invention have been described above, these embodiments are provided as examples and are not intended to limit the scope of the invention. These new embodiments may be implemented in various other ways, and various omissions, substitutions, and modifications may be made without departing from the spirit of the invention. These embodiments and their variations are intended to be included within the scope and spirit of the invention and within the scope of the invention set forth in the claims and their equivalents.

Claims

1. A controller is connected to an input / output device connected to a group of devices in an industrial plant, and includes a plurality of processing units that perform processing in a predetermined processing unit. Among them, each of the processing units includes: a split table storage unit that stores a split table, the split table indicating the correspondence between the waiting time for accessing the input / output device that is the destination of the access request data and the access split size threshold, and the access split size threshold is a threshold of the data size for determining whether to split the data requested to be output according to the access request data; a splitting unit that, with reference to the split table, when the size of the data requested to be output according to the access request data to be output as scheduled is larger than the access split size threshold corresponding to the current access waiting time, splits the data requested to be output into a size not exceeding the access split size threshold and updates the access request data; an output processing unit that, in the input / output processing before the task processing executed by the task processing unit at a predetermined cycle, when outputting the access request data to the input / output device, if the access request data is updated by the splitting unit, outputs the updated access request data to the input / output device; and an input processing unit that inputs data corresponding to the access request data from the input / output device.

2. The controller according to claim 1, wherein each of the processing units further includes: a changing unit that changes the access split size threshold in the split table based on statistical information including the average waiting time for accessing the input / output device and the average processing time of the access request data.

3. The controller according to claim 1, wherein each of the processing units further includes: a processing priority threshold storage unit that stores a priority threshold, and the priority threshold is a threshold of the priority of each process, the splitting unit refers to the split table, and when the size of the data requested to be output according to the access request data to be output as scheduled is larger than the access split size threshold corresponding to the current access waiting time, and the priority of the processing of the access request data is not higher than the priority threshold corresponding to the process stored in the processing priority threshold storage unit, splits the data requested to be output according to the access request data into a size not exceeding the access split size threshold and updates the access request data.

4. The controller according to claim 1, wherein each of the processing units further includes: an adjusting unit that adjusts the timing of the repeated cycle based on statistical information including the average waiting time for accessing the input / output device and the average processing time of the access request data to reduce the average waiting time.

Citation Information

Patent Citations

  • Picture segmentation method for online friend reading of Internet website group journal files

    CN107807950A

  • Access request processing method, device, equipment and readable storage medium

    CN108874324A