[go: up one dir, main page]

WO2019187719A1 - Information processing device, information processing method, and program - Google Patents

Information processing device, information processing method, and program Download PDF

Info

Publication number
WO2019187719A1
WO2019187719A1 PCT/JP2019/005042 JP2019005042W WO2019187719A1 WO 2019187719 A1 WO2019187719 A1 WO 2019187719A1 JP 2019005042 W JP2019005042 W JP 2019005042W WO 2019187719 A1 WO2019187719 A1 WO 2019187719A1
Authority
WO
WIPO (PCT)
Prior art keywords
real
time
core
task
processing
Prior art date
Application number
PCT/JP2019/005042
Other languages
French (fr)
Japanese (ja)
Inventor
元 戸村
修祐 佐伯
琢麿 馬渕
健太 多田
佐藤 和美
寛 飯渕
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Publication of WO2019187719A1 publication Critical patent/WO2019187719A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • the present disclosure relates to an information processing apparatus, an information processing method, and a program. More specifically, in an apparatus that can execute a plurality of processes in parallel using a plurality of cores (processors) such as a multi-core system, an information processing apparatus that realizes real-time performance of a real-time task, and information processing
  • the present invention relates to a method and a program.
  • each task is executed in parallel, so information with multiple processors, such as a multicore system capable of parallel processing by multiple cores (processors)
  • processors such as a multicore system capable of parallel processing by multiple cores (processors)
  • Tasks executed in such an information processing apparatus include tasks that require completion of processing up to a specified time, that is, real-time tasks that require real-time performance (real-time processing), and other tasks, that is, identification Non-real-time tasks (non-real-time processing) that do not require completion of processing until the specified time are mixed.
  • This shielding technique is set so that a dedicated core (real-time core) does not execute non-real-time processing, so that a dedicated core can reliably execute a real-time task when a real-time task occurs.
  • this configuration has a problem that it is necessary to set a dedicated core that executes only a real-time task, and is difficult to realize when the number of cores is small.
  • Patent Document 1 Japanese Patent Laid-Open No. 2005-157955 discloses a technique for disclosing a specific real-time task by a specified time without providing a dedicated core for executing a real-time task.
  • This Patent Document 1 calculates the processing time of a real-time task required by a processor, and if there is a surplus time before the specified completion time of the real-time task, causes the processor to execute another process and there is no room Is configured to execute only real-time tasks.
  • This configuration realizes a configuration that guarantees the real-time performance of the real-time task even in a configuration where the number of cores (processors) is not sufficient and a real-time dedicated core cannot be set.
  • this configuration has a problem that a lot of additional processing occurs, for example, it is necessary to calculate the processing time of the real-time task, and it is also necessary to set an interrupt for calculating the processing time. .
  • Another problem is that it is difficult to deal with real-time tasks that occur at unpredictable timing.
  • the present disclosure has been made in view of the above-described problems, for example, in a multi-core system or the like that uses a plurality of cores (processors) to execute a plurality of processes in parallel, and some cores are processed in real time.
  • Information processing apparatus, information processing method, and program capable of ensuring real-time performance of a real-time task without performing processing such as pre-calculating the processing time of each task The purpose is to provide.
  • the first aspect of the present disclosure is: Multiple cores that perform data processing; A task scheduler for scheduling tasks executed in the plurality of cores;
  • the plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task,
  • the task scheduler A task allocation process for causing the real-time core to execute not only a real-time task but also a non-real-time task;
  • the information processing apparatus executes migration for moving a non-real-time task assigned to the real-time core to another core in response to occurrence of a predetermined event.
  • the second aspect of the present disclosure is: An information processing method executed in an information processing apparatus,
  • the information processing apparatus includes: Multiple cores that perform data processing;
  • the plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task,
  • the task scheduler is A task allocation process for causing the real-time core to execute not only a real-time task but also a non-real-time task;
  • migration is performed in which a non-real-time task assigned to the real-time core is moved to another core in response to occurrence of a predetermined event.
  • the third aspect of the present disclosure is: A program for executing information processing in an information processing apparatus;
  • the information processing apparatus includes: Multiple cores that perform data processing;
  • the plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task,
  • the program is stored in the task scheduler. Causing the real-time core to execute a task assignment process for executing not only a real-time task but also a non-real-time task;
  • there is a program for executing a migration that moves a non-real-time task assigned to the real-time core to another core.
  • the program of the present disclosure is a program that can be provided by, for example, a storage medium or a communication medium provided in a computer-readable format to an information processing apparatus or a computer system that can execute various program codes.
  • a program in a computer-readable format, processing corresponding to the program is realized on the information processing apparatus or the computer system.
  • system is a logical set configuration of a plurality of devices, and is not limited to one in which the devices of each configuration are in the same casing.
  • a configuration in which non-real-time tasks are executed in the real-time core to improve processing efficiency and the real-time property of the real-time task is ensured is realized.
  • it has a real-time core that executes a real-time task, a plurality of cores configured by a non-real-time core that executes a non-real-time task, and a task scheduler that schedules the tasks of the plurality of cores.
  • the task scheduler executes task assignment that allows the real-time core to execute not only real-time tasks but also non-real-time tasks, and migrates non-real-time tasks assigned to real-time cores to other cores in response to the occurrence of a predefined event.
  • FIG. 25 is a diagram for describing an example hardware configuration of an information processing device.
  • a real-time task (real-time processing) will be described with reference to FIG.
  • an information processing apparatus having a plurality of cores (processors) such as a multi-core system in which a plurality of cores (processors) can be operated in parallel in order to execute a plurality of different tasks (processes) in parallel is used. .
  • A Processing that requires completion of processing up to a specified time, that is, a real-time task that requires real-time performance (real-time processing),
  • B Non-real-time task (non-real-time processing) that does not require completion of processing up to a specified time,
  • the time from the camera photographed image to the monitor (display unit) output is determined. If the delay occurs, the work may be delayed or the display may be distorted. At worst, it is impossible to work while looking at the front image of the monitor.
  • Image processing in this case basically needs to be executed as real-time processing.
  • An information processing apparatus that executes such image processing may perform, for example, a monitor output of a captured image and a process of recording the captured image in a storage unit such as a hard disk in parallel.
  • a monitor output of a captured image and a process of recording the captured image in a storage unit such as a hard disk in parallel.
  • Such processing is allowed to be executed as a non-real-time task (non-real-time processing).
  • the real-time task further includes the following two types of processing.
  • A1 Periodic processing a2) Aperiodic processing
  • Periodic processing is processing that occurs periodically in advance.
  • the above-described image processing for outputting the captured image of the camera to the monitor (display unit) is also periodic processing.
  • an image captured at a predetermined frame rate is cycled. It is necessary to perform processing periodically, which is a periodic process.
  • the camera captures images at various frame rates, such as 60 f / s for capturing an image of 60 frames per second and 120 f / s for capturing an image of 120 frames per second.
  • the core needs to perform periodic processing on each of the continuous images at the prescribed frame intervals.
  • non-periodic processing is to execute event-corresponding processing within a predetermined response time when a sudden event occurs.
  • focus adjustment is required when the focal length changes due to movement of a camera or subject during moving image shooting. If the focus adjustment cannot be completed within a predetermined time, only a blurred image can be obtained and a clear moving image cannot be taken.
  • camera shake correction process or the like if the correction process cannot be completed within a predetermined time after the camera shake is detected, the correction cannot be made in time and the purpose cannot be achieved.
  • Such processing is an aperiodic real-time task.
  • a periodic real-time task is required to execute one cycle of processing at a predetermined time, and an interrupt response-type real-time task is executed within a predetermined response time from the occurrence of an event such as the above-mentioned doctor operation. To complete the process.
  • FIG. 1 shows three examples of real-time task execution sequences by one core (processor) in an information processing apparatus having a plurality of cores (processors).
  • Te Processing completion specified time
  • Processing example 1 is an example in which processing within a specified time for a real-time task is successfully completed.
  • the processing by the core is started at time T1 after a predetermined delay time (latency), and the processing is ended at time T2.
  • the processing end time T2 is a time before the processing completion specified time Te, and this processing example 1 is a successful example of real-time processing.
  • Processing example 2 is a failure example of processing completion within a specified time of a real-time task.
  • the processing end time T2 is a time after the processing completion specified time Te, and this processing example 2 is an example of failure of real-time processing.
  • This processing example 2 is an example in which the processing time of the real-time task has become longer. This is because, for example, resources and data required for real-time task processing compete with resources and data used by other tasks (processing) executed by other cores, and there is a waiting time for acquiring resources and data. This is an example that can occur.
  • Processing example 3 is also an example of a process completion failure within a specified time of the real-time task.
  • the time from the process start time T1 to the process end time T2 is shorter than the process example 1, as a result, the process end time T2 is a time after the process completion specified time Te, and this process example 3 is also real time. This is an example of task processing failure.
  • the tasks executed in each core are various different tasks, and the required processing time is also different. Therefore, for example, in a configuration in which various tasks are executed using two cores, the balance of processing assigned to each core may deteriorate. Specifically, there is a case where the processing amount of the task assigned to one core is large, the processing amount of the task assigned to the other core is small, and an idle time occurs in the other core.
  • the task assigned to one core may be moved to the other core for processing.
  • Such task movement processing between cores is called migration.
  • FIG. 2 shows an example of migration in a configuration in which tasks (processes) are executed using two cores (CPUs). Time elapses in the order of time zones T10 to T20, T20 to T30, and T30 to T40 from the left to the right shown in the figure. The figure shows the task execution status of the two cores 1 (CPU 1) and 2 (CPU 2) in each time zone.
  • CPU 1 CPU 1
  • CPU 2 CPU 2
  • Core 1 executes task A, task B, and task C.
  • the core 1 (CPU 1) executes these three tasks as, for example, time division processing.
  • the size of the task A to C area of the core 1 (CPU 1) shown at (time T10 to T20) corresponds to the distribution ratio of the processing time of each task in the core 1 (CPU 1).
  • the core 2 executes only the task D and there is a free time during which no processing is performed.
  • the total processing time for example, the time until all tasks of tasks A to D are completed. Will become longer.
  • Core 1 (CPU 1) executes only task A and task C.
  • the core 2 (CPU 2) executes task D and task B. Note that arrows in the figure at times T30 to T40 mean that the distribution of processing time of each task in each core can be expanded.
  • the core 1 (CPU 1) can use the processing time of the task B, which has been executed during the time T10 to T20, as the processing time of the task A and the task C.
  • the core 2 (CPU 2) can use all of the free time in the times T10 to T20 as the processing time of the task B that has moved by migration.
  • FIG. 3 shows an example of shield processing for a multi-core system having four cores, that is, four cores, core 1 (CPU 1) to core 4 (CPU 4).
  • the second core 2 (CPU 2) from the left is set as a real-time core dedicated to real-time processing. That is, the core 2 (CPU 2) is shielded (isolated) and set as a real-time processing-dedicated core.
  • Other cores other than the core 2 (CPU 2) are non-real-time cores that execute non-real-time processing.
  • CPU 2 Only a real-time task is assigned to the core 2 (CPU 2) which is a real-time core.
  • Other cores (core 1 (CPU 1), core 3 (CPU 3), and core 4 (CPU 4)) other than core 2 (CPU 2) execute various applications (App) that are non-real-time tasks.
  • Each core also executes a kernel thread.
  • the kernel thread corresponds to a part of kernel processing that executes processing such as management of resources and memory necessary for task execution in each core and task switching.
  • the kernel is software that is the core of the OS (operating system).
  • Core 2 which is a real-time core, receives only an interrupt from a device necessary for processing a real-time task, device B shown in the figure. Interrupts to the real-time core from other devices are prohibited.
  • other cores core 1 (CPU 1), core 3 (CPU 3), core 4 (CPU 4)
  • core 2 CPU 2
  • the device is a device that requires a processing result by the core, and is configured by various devices such as a GPU (graphic processing unit), a hard disk (HD), and a USB.
  • a GPU graphics processing unit
  • HD hard disk
  • USB USB
  • the device B is the interrupt-permitting device for the core 2 (CPU 2), which is a real-time core, but there may be a plurality of devices.
  • the real-time task executed in the core 2 (CPU 2) is processing for monitor output of a captured image, as in the above-described example.
  • the device B is, for example, a GPU (graphic processing unit).
  • the core 2 which is a real-time core, executes generation of image processing parameters necessary for an image processing process in a GPU, for example.
  • Core 2 (CPU2).
  • the GPU uses the generation parameters of the core 2 (CPU 2) to generate an image for monitor output. These series of processes need to be executed without time delay in order to immediately output the camera-captured image to the monitor. That is, the image parameter generation process executed in the core 2 (CPU 2) is a real-time task.
  • the shield process with the two processes (1) and (2) above allows the core 2 (CPU 2), which is a real-time core, to execute a real-time task without being interrupted by other tasks or interrupts. Can be completed in time. That is, processing that guarantees real-time performance is possible.
  • CPU 2 CPU 2
  • the configuration of the present disclosure is a configuration that executes a process to which a new shielding technique is applied.
  • the shielded core that executes real-time processing is also configured to execute a non-real-time task as long as the real-time task executed in the core can be completed within a specified time.
  • the shield process of the core that executes the real-time task is a gentle shield process. That is, the real-time task execution core is also configured to execute a non-real-time task depending on the situation. As described above, by executing the non-real-time task even in the execution core of the real-time task, it becomes possible to improve the processing efficiency of the entire apparatus even in a configuration without a sufficient number of cores.
  • FIG. 4 is a diagram illustrating a conventional strict shield configuration
  • FIG. 5 is a diagram illustrating a gradual shield configuration of the present disclosure.
  • FIG. 4 is the same as the configuration described above with reference to FIG. 3, and is a multi-core system configuration having four cores, that is, four cores, core 1 (CPU 1) to core 4 (CPU 4). is there.
  • RT real-time task
  • CPU 2 CPU 2
  • CPU 3 core 3
  • CPU 4 core 4
  • non-RT non-real-time task
  • each core also executes a kernel thread, as described above with reference to FIG.
  • the kernel thread is a process corresponding to the kernel, which is the core software of the OS (operating system), management of resources and memory necessary for task execution in each core, and processing such as task switching Is included.
  • the four cores shown in FIG. 4, that is, core 1 (CPU 1) to core 4 (CPU 4), are processes corresponding to various devices such as a GPU (graphic processing unit), a hard disk (HD), and a USB. Execute.
  • the core 2 (CPU 2), which is a real-time core isolated by strict shielding processing, receives only an interrupt from a device necessary for processing a real-time task, and executes only processing corresponding to the device. Interrupts from other devices are prohibited for the core 2 (CPU 2), which is a real-time core isolated by strict shielding processing.
  • Interrupts from various devices are allowed for cores other than core 2 (CPU 2) (core 1 (CPU 1), core 3 (CPU 3), core 4 (CPU 4)).
  • the core 2 (CPU 2), which is a real-time core isolated by the strict shielding process shown in FIG. 4, has the following strict shielding in order to guarantee the real-time property of the real-time task, that is, the task completion up to a specified time. Processing is performed. (1) Only real-time tasks are assigned to real-time cores. (2) The real-time core allows only interrupts from devices necessary for processing real-time tasks, and prohibits interrupts from other devices.
  • the core 2 which is a real-time core, can execute a real-time task without being interrupted by other tasks or interrupts. Can be completed within a specified time. That is, processing that ensures real-time performance is possible.
  • the real-time core 2 (CPU 2) can execute only the real-time task (RT). Unassigned and cannot be executed. As a result, when many non-real-time tasks occur, a small number of non-real-time cores must execute all these non-real-time tasks, which causes a problem that the processing delay of the non-real-time tasks increases.
  • FIG. 5 A configuration of the present disclosure that solves such a problem, that is, a configuration of the present disclosure that performs gentle shielding processing will be described with reference to FIG. 5.
  • the configuration shown in FIG. 5 is the same as the configuration described with reference to FIG. 4, and is a multi-core system configuration having four cores, that is, four cores of core 1 (CPU 1) to core 4 (CPU 4).
  • the gentle shield (isolation) processing of the present disclosure is executed for the second core 2 (CPU 2) from the left, and the core 2 (CPU 2) is changed to the real-time task (RT).
  • RT real-time task
  • the core 2 (CPU 2) which is a real-time core, executes not only a real-time task (RT) but also a non-real-time task (non-RT).
  • non-real-time tasks that are running in the real-time core may not be processed (real-time inhibition processing) until the specified time (real-time performance) of the real-time task (RT) running in the real-time core is hindered. If it is set as an execution scheduled process of (non-RT), the non-real-time task (non-RT) is moved (migrated) to another core.
  • Non-RT non-real time cores that execute non-real time tasks
  • This pre-defined condition means that processing (real-time inhibition processing) that may prevent processing completion (real-time performance) up to the specified time of the real-time task (RT) being executed in the real-time core is This is the detection that the non-real-time task (non-RT) being executed is set as the scheduled execution process. When this condition occurs, the non-real-time task (non-RT) is moved (migrated) to another core.
  • each core also executes a kernel thread as described above with reference to FIG. 3.
  • the kernel thread is a process corresponding to the kernel, which is the core software of the OS (operating system), and manages resources and memory necessary for task execution in each core, and also performs processing such as task switching. is there.
  • the four cores shown in FIG. 5, that is, core 1 (CPU 1) to core 4 (CPU 4), are processes corresponding to various devices such as GPU (graphic processing unit), hard disk (HD), USB, and the like. Execute.
  • Core 2 (CPU 2), which is a real-time core isolated by gentle shield processing, receives not only interrupts from devices necessary for real-time task processing but also non-real-time processing interrupts without being prohibited.
  • the core 2 (CPU 2) which is a real-time core isolated by the strict shielding process shown in FIG. 4 described above, is prohibited from interrupting from other devices, but is isolated by the gentle shielding process shown in FIG.
  • the core 2 (CPU 2) which is a real-time core, is allowed to interrupt from other devices.
  • Other cores (core 1 (CPU 1), core 3 (CPU 3), core 4 (CPU 4)) other than core 2 (CPU 2) are allowed to interrupt from various devices.
  • the core 2 (CPU 2), which is a real-time core isolated by the gentle shield process shown in FIG. 5, performs a shield process with the following settings in order to guarantee the real-time property of the real-time process, that is, the completion of the process up to a specified time. .
  • a real-time task is assigned to a real-time core.
  • a non-real time task is also assigned to the real time core.
  • Non-real-time tasks (non-real-time processing) that are running in the real-time core non-real-time inhibition processing) that may interfere with processing completion (real-time performance) of the real-time task that is running in the real-time core. If it is set to the execution schedule process of (RT), the non-real-time task (non-RT) is moved (migrated) to another core.
  • the core 2 (CPU 2), which is a real-time core, can complete the real-time task within a specified time by the gentle shielding process involving the three processes (1), (2), and (3). That is, it is possible to process a real-time task that ensures real-time performance.
  • Non-real-time processing can be executed, the time until completion of non-real-time processing can be shortened, and the processing efficiency of the entire apparatus can be improved.
  • a gentle shield process is executed for a real-time core, and a real-time task and a non-real-time task are also assigned to the real-time core.
  • non-real-time tasks (non-RT) running in the real-time core may not be processed (real-time inhibition processing) that may prevent processing completion (real-time performance) of the real-time task running in the real-time core.
  • the non-real-time task (non-RT) is moved (migrated) to another core.
  • Task assignment to a plurality of cores and task migration (migration) are executed in a kernel which is a partial function of the OS.
  • a kernel which is a partial function of the OS.
  • FIG. 6 illustrates a multi-core 20 configured by a plurality of cores (CPUs) configuring an information processing apparatus of the present disclosure and a device group 10 configured by a plurality of devices.
  • the device group 10 includes various devices. Specifically, it is a device that requires a processing result by any one of the cores in the multi-core 20, and is configured by various devices such as a GPU (graphic processing unit), a hard disk (HD), and a USB.
  • GPU graphics processing unit
  • HD hard disk
  • USB USB
  • the multi-core 20 includes two or more cores (CPUs) as hardware.
  • FIG. 6 shows a software configuration (software stack) executed by a core (CPU) that is hardware in the multi-core 20.
  • a kernel (OS) 30 as a base stack and a plurality of tasks as its upper stack are shown.
  • the plurality of tasks include a number of tasks such as a real-time task (RT) 52 in which a process completion deadline and a processing start time are defined, and other non-real-time tasks (non-RT) 51, 53, and 54. These are executed in each of a plurality of cores constituting the multi-core 20.
  • RT real-time task
  • non-RT non-real-time tasks
  • a kernel thread is executed in each core constituting the multi-core 20. This is the kernel thread described above with reference to FIG.
  • the kernel thread is a process corresponding to the kernel that is the core software of the OS (operating system), and includes processing such as management of resources and memory necessary for task execution in each core, and task switching.
  • the kernel also has a function of a task scheduler 31.
  • the task scheduler 31 executes task scheduling processing such as task assignment to each core constituting the multi-core 20 and task movement processing between each core. These task scheduling processes are also part of the kernel thread executed in each core.
  • the task scheduler 31 of the kernel (OS) 30 shown in FIG. 6 executes processing such as task assignment to each core constituting the multi-core 20 and task movement between the cores.
  • the task scheduler 31 also executes the task movement process (migration) described above with reference to FIG.
  • processing real-time inhibition processing
  • processing completion real-time performance
  • non-RT real-time performance
  • the non-real-time task is moved (migrated) to another core.
  • Step S101 The task scheduler 31 first executes a normal task scheduling process in step S101. Specifically, task scheduling is executed in which real-time tasks are assigned to real-time cores, and non-real-time tasks are assigned according to free times of all cores including real-time cores and non-real-time cores.
  • step S102 the task scheduler 31 performs processing (real-time inhibition processing) that affects the real-time property of the real-time task being executed in the real-time core (the processing completion certainty up to the specified time) by the real-time core. It is determined whether or not the non-real-time task (non-RT) being executed is set as a scheduled execution process.
  • processing real-time inhibition processing
  • the task scheduler 31 monitors the processes being executed in all the cores, and further monitors and manages the schedules of all processes such as process requests from all devices and interrupt process requests.
  • the task scheduler 31 includes a process newly scheduled as an execution scheduled process of a non-real-time task (non-RT) being executed in the real-time core. “Processing that affects the real-time performance of the real-time processing being executed in the real-time core (process completion certainty up to the specified time) (real-time inhibition processing)” The process which determines whether it is is performed is performed.
  • processing that affects the real-time performance of the real-time processing being executed in the real-time core processes completion certainty up to the specified time
  • real-time inhibition processing For example, a process that causes an interruption of a real-time process being executed in the real-time core or the like.
  • the system call is an output process of instructions and functions issued by the OS (kernel) (for example, instructions and functions for providing and using functions for tasks).
  • the interrupt prohibition process is an interrupt prohibition process forcibly executed by interrupting a process being executed.
  • the preemption prohibition process is a preemption prohibition process for temporarily interrupting a task being executed.
  • step S102 the task scheduler 31 executes a non-real-time task (non-RT) in which a real-time inhibition process such as the processes (1) to (3) shown in FIG. It is determined whether or not the processing is set.
  • non-RT non-real-time task
  • step S102 determines whether the real-time inhibition process is set as the execution scheduled process for the non-real-time task (non-RT) being executed in the real-time core. If the determination in step S102 is Yes, that is, if it is determined that the real-time inhibition process is set as the execution scheduled process for the non-real-time task (non-RT) being executed in the real-time core, the process proceeds to step S103. Otherwise, the process returns to step S101, and normal task scheduling processing is continued.
  • Step S103 If the determination in step S102 is Yes, that is, if it is determined that the real-time inhibition process is set as the execution scheduled process for the non-real-time task (non-RT) being executed in the real-time core, the process proceeds to step S103.
  • the task scheduler 31 performs processing for moving (migrating) the non-real-time task (non-RT) set as the execution scheduled processing to the real-time inhibition processing to another core.
  • the real-time core that is executing the real-time task does not need to execute the non-real-time task that is scheduled to execute the real-time inhibition process, without causing an unexpected interruption of the real-time task, Real-time tasks can be completed by the scheduled time. That is, a real-time task that secures real-time performance can be executed.
  • the embodiment described below is an endoscope system that captures 4K images.
  • the 4K image is a high-quality image having high density pixels of 3840 ⁇ 2160 pixels, for example.
  • the endoscope system captures 120 frames per second of a 4K image and performs a process of executing a process of displaying the frame on a monitor.
  • an image processing apparatus that processes an image photographed by an endoscope must continuously input a 120 f / s image and continuously generate an image for output to a monitor. Don't be.
  • FIG. 9 shows a configuration example of the endoscope system 100.
  • the endoscope system 100 includes a camera device 110, an image processing device 120, and a monitor 140.
  • the camera 110 captures a 4K image at a frame rate of 120 f / s and inputs the captured image to the image processing apparatus 120.
  • the image processing apparatus 120 performs image processing on a 120 f / s image input from the camera 110, that is, processing on each of 120 captured images per second, and generates an output image to be output to the monitor 140. .
  • the output image generated by the image processing apparatus 120 is output to the monitor 140. For example, a doctor performs an appropriate treatment while viewing the output image of the monitor 140.
  • the image output to the monitor 140 needs to be a real-time image, and a large time delay is not allowed. Therefore, the image processing apparatus 120 needs to input an image with a frame rate of 120 f / s from the camera 110, perform image processing for each frame without time delay, and generate an output image of 120 frames per second. is there. This image generation process is a real-time task.
  • the image processing apparatus 120 includes a multi-core 130 having a plurality of cores (CPUs) and a device group 140 composed of a plurality of devices.
  • CPUs central processing units
  • device group 140 composed of a plurality of devices.
  • the multi-core 130 has two cores, a core 1 (CPU 1) 131 and a core 2 (CPU 2) 132.
  • the device group 140 includes a plurality of devices A (GPU) 141, device B (camera) 142, device C (USB) 143,. These devices are devices that require a processing result by the core, and are constituted by various devices such as a GPU (graphic processing unit), a camera, and a USB.
  • the core 1 (CPU 1) 131 that is a real-time core executes generation of image processing parameters necessary for an image processing process in the device A (GPU) 141, for example.
  • the core 1 (CPU 1) 131 is.
  • the generated parameter is provided to the device A (GPU) 141.
  • the device A (GPU) 141 generates an image for monitor output using the generation parameters of the core 1 (CPU 1).
  • the core 1 (CPU 1) 131 and the device A (GPU) 141 which are real-time cores, need to repeatedly perform image processing in units of one frame at intervals of 8.3 ms.
  • the sequence diagram shown in FIG. 10 shows the processing sequence of one frame image.
  • an image input interrupt corresponding to an image processing request is input from the device B (camera) 142 to the core 1 (CPU 1) 131 which is a real-time core.
  • control for inputting an image input interrupt to the core 1 (CPU 1) 131, which is a real-time core, is executed by a kernel task scheduler.
  • the core 1 (CPU 1) 131 which is a real-time core, generates image processing parameters used for actual processing, specifically, image processing in the GPU, from time t12 after a predetermined delay time. Start processing. This process is a real-time task, and the time until the process is completed is defined.
  • the core 1 (CPU 1) 131 which is a real-time core, completes the image processing parameter generation process at time t13 and outputs the generated image processing parameter to the device A (GPU) 141. Thereafter, the device A (GPU) 141 generates an output image and outputs it to the monitor 140 until time T2.
  • the core 1 (CPU 1) 131 which is a real-time core, is set to be allowed to execute only real-time tasks, and the task is executed for a time from time t13 to time T2. Therefore, it was necessary to wait until the next frame was processed.
  • the core 1 (CPU 1) 131 that is a real-time core is allowed to execute not only a real-time task but also a non-real-time task. Therefore, after the time t13, it is possible to execute the non-real-time task processing for the time up to the time T2.
  • the configuration having two cores enables parallel processing of non-real-time tasks using two cores, and the processing efficiency jumps compared to a configuration in which only one core executes non-real-time tasks. Can be increased.
  • the core 1 (CPU 1) 131 which is a real-time core, can also execute a non-real-time task in a time-sharing manner in addition to the real-time task that is the image processing parameter generation process even during the period of time t12 to t13. .
  • the multi-core 301 includes a plurality of cores (CPU: Central Processing Unit). As shown in FIG. 11, the multi-core 301 has at least two cores such as a core 1 (CPU 1) 351, a core 2 (CPU 2) 352, a core 3 (CPU 3) 353, and the like.
  • CPU Central Processing Unit
  • At least one of the cores in the multi-core 301 is set as a real-time core whose processing is limited by the gentle shield processing described in the above-described embodiment.
  • the shield process of the core that executes the real-time task is a gentle shield process, and the execution of the non-real-time task is allowed even in the real-time core depending on the situation.
  • non-real-time tasks (non-RT) running in the real-time core may not be processed (real-time inhibition processing) that may prevent processing completion (real-time performance) of the real-time task running in the real-time core.
  • real-time inhibition processing may prevent processing completion (real-time performance) of the real-time task running in the real-time core.
  • the real-time core can complete the real-time task within the specified time by performing a gentle shield process that is set to perform task migration (migration) under the above conditions for the real-time core. In other words, processing that ensures real-time performance of the real-time task is possible.
  • a GPU (Graphic Processing Unit) 302 is an image-dedicated processor that executes image processing. As described above, image processing using a parameter generated by the CPU is performed.
  • a ROM (Read Only Memory) 303 is used as a storage area for programs and parameters executed by the multi-core 301 and the GPU 302.
  • a RAM (Random Access Memory) 304 is used as a work area for processing executed by the multi-core 301 and the GPU 302, a parameter storage area, a recording area for other data, and the like.
  • These multi-core 301, GPU 302, ROM 303, and RAM 304 are mutually connected by a bus 305.
  • the multi-core 301 and the GPU 302 are connected to an input / output interface 306 via a bus 305.
  • the input / output interface 306 includes various switches, a keyboard, a touch panel, a mouse, a microphone, and a data acquisition unit such as a sensor and a camera.
  • An input unit 307, a display such as a monitor, and an output unit 309 including a speaker are connected.
  • the multi-core 301 receives commands, status data, and the like input from the input unit 307, executes various processes, and outputs the processing results to the output unit 308, for example.
  • the storage unit 309 connected to the input / output interface 306 includes, for example, a hard disk and stores programs executed by the multi-core 301 and various data.
  • the communication unit 310 functions as a data transmission / reception unit via a network such as the Internet or a local area network, and communicates with an external device.
  • the drive 311 connected to the input / output interface 306 drives a removable medium 312 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory such as a memory card, and executes data recording or reading.
  • a removable medium 312 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory such as a memory card
  • the technology disclosed in this specification can take the following configurations.
  • the plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task,
  • the task scheduler A task allocation process for causing the real-time core to execute not only a real-time task but also a non-real-time task;
  • An information processing apparatus that executes migration for moving a non-real-time task assigned to the real-time core to another core in response to occurrence of a predetermined event.
  • the task scheduler Real-time inhibition processing which is a process that may prevent processing completion (real-time performance) of a real-time task being executed in the real-time core from being executed, is scheduled to be executed for a non-real-time task being executed in the real-time core.
  • the real-time inhibition process is: The information processing apparatus according to (2), wherein the information processing apparatus is one of a system call, an interrupt prohibition process, a preemption prohibition process, a CPU exception process, or a cache lock.
  • the task scheduler Assign a real-time task only to the real-time core and execute it in the real-time core,
  • the information processing apparatus according to any one of (1) to (3), wherein a non-real-time task is assigned to the non-real-time core and the real-time core, and task assignment processing is executed by a plurality of cores.
  • each of the plurality of cores is a processor.
  • the information processing apparatus It is a configuration that executes image processing for inputting an image captured by a camera and generating an output image to be displayed on the display unit,
  • the real-time core is The image processing device according to any one of (1) to (5), wherein generation of a parameter provided to a GPU (Graphic Processing Unit) that executes the image processing is executed as the real-time task.
  • a GPU Graphic Processing Unit
  • the real-time core is The information processing apparatus according to (6), wherein the parameter generation processing corresponding to one image frame is executed as a real-time task, and the non-real-time task is executed in a free time thereafter.
  • An information processing method executed in the information processing apparatus includes: Multiple cores that perform data processing; A task scheduler for scheduling tasks executed in the plurality of cores; The plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task, The task scheduler is A task allocation process for causing the real-time core to execute not only a real-time task but also a non-real-time task; An information processing method for executing migration for moving a non-real-time task assigned to the real-time core to another core in response to occurrence of a predetermined event.
  • a program for executing information processing in an information processing device includes: Multiple cores that perform data processing; A task scheduler for scheduling tasks executed in the plurality of cores; The plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task, The program is stored in the task scheduler. Causing the real-time core to execute a task assignment process for executing not only a real-time task but also a non-real-time task; A program for executing migration to move a non-real-time task assigned to the real-time core to another core in response to occurrence of a predetermined event.
  • the series of processes described in the specification can be executed by hardware, software, or a combined configuration of both.
  • the program recording the processing sequence is installed in a memory in a computer incorporated in dedicated hardware and executed, or the program is executed on a general-purpose computer capable of executing various processing. It can be installed and run.
  • the program can be recorded in advance on a recording medium.
  • the program can be received via a network such as a LAN (Local Area Network) or the Internet and installed on a recording medium such as a built-in hard disk.
  • the various processes described in the specification are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary.
  • the system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.
  • a configuration in which a non-real-time task is executed in a real-time core to improve the processing efficiency and the real-time property of the real-time task is ensured is realized.
  • it has a real-time core that executes a real-time task, a plurality of cores configured by a non-real-time core that executes a non-real-time task, and a task scheduler that schedules the tasks of the plurality of cores.
  • the task scheduler executes task assignment that allows the real-time core to execute not only real-time tasks but also non-real-time tasks, and migrates non-real-time tasks assigned to real-time cores to other cores in response to the occurrence of a predefined event. Do. With this configuration, a non-real-time task is executed in the real-time core to improve processing efficiency, and a configuration that ensures the real-time property of the real-time task is realized.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The present invention achieves a structure wherein non-real-time tasks are performed in a real-time core to increase processing efficiency, and the real-time property of real-time tasks is guaranteed. The present invention has: a plurality of cores that are structured from a real-time core performing real-time tasks and a non-real-time core performing non-real-time tasks; and a task scheduler that schedules tasks for the plurality of cores. The task scheduler performs task assignment to cause the real-time core to perform not only real-time tasks but also non-real-time tasks, and in response to the occurrence of a previously prescribed event, performs a migration to transfer a non-real-time task assigned to the real-time core to a different core.

Description

情報処理装置、および情報処理方法、並びにプログラムInformation processing apparatus, information processing method, and program
 本開示は、情報処理装置、および情報処理方法、並びにプログラムに関する。さらに詳細には、例えばマルチコアシステム等、複数のコア(プロセッサ)を利用して複数の処理を並列に実行可能とした装置において、リアルタイムタスクのリアルタイム性の確保を実現する情報処理装置、および情報処理方法、並びにプログラムに関する。 The present disclosure relates to an information processing apparatus, an information processing method, and a program. More specifically, in an apparatus that can execute a plurality of processes in parallel using a plurality of cores (processors) such as a multi-core system, an information processing apparatus that realizes real-time performance of a real-time task, and information processing The present invention relates to a method and a program.
 多数のタスク(処理)の並列処理が要求されるシステムでは、各タスク(処理)を並列に実行させるため、複数コア(プロセッサ)による並列処理が可能なマルチコアシステム等、複数のプロセッサを搭載した情報処理装置が利用される。 In systems that require parallel processing of a large number of tasks (processes), each task (process) is executed in parallel, so information with multiple processors, such as a multicore system capable of parallel processing by multiple cores (processors) A processing device is used.
 このような情報処理装置において実行されるタスクには、規定時間までの処理完了が必要とされるタスク、すなわち、リアルタイム性が要求されるリアルタイムタスク(リアルタイム処理)と、それ以外のタスク、すなわち特定の規定時間までの処理完了が要求されないノンリアルタイムタスク(ノンリアルタイム処理)が混在する。 Tasks executed in such an information processing apparatus include tasks that require completion of processing up to a specified time, that is, real-time tasks that require real-time performance (real-time processing), and other tasks, that is, identification Non-real-time tasks (non-real-time processing) that do not require completion of processing until the specified time are mixed.
 リアルタイムタスクの規定時間までの処理完了を実現するため、すなわちリアルタイム性を確保する技術として、情報処理装置が有する複数コアの一部のコアをリアルタイムタスク専用のコアに設定するシールディング技術がある。 In order to achieve the completion of processing up to a specified time for a real-time task, that is, as a technology for ensuring real-time properties, there is a shielding technology for setting a part of a plurality of cores of an information processing device as a core dedicated to a real-time task.
 このシールディング技術は、専用コア(リアルタイムコア)にノンリアルタイム処理を実行させない設定とすることで、リアルタイムタスクの発生時に、確実に専用コアがリアルタイムタスクを実行できる設定としたものである。
 しかし、この構成は、リアルタイムタスクのみを実行する専用コアを設定することが必要であり、コア数が少ない場合には実現することが難しいという問題がある。
This shielding technique is set so that a dedicated core (real-time core) does not execute non-real-time processing, so that a dedicated core can reliably execute a real-time task when a real-time task occurs.
However, this configuration has a problem that it is necessary to set a dedicated core that executes only a real-time task, and is difficult to realize when the number of cores is small.
 リアルタイムタスク実行用の専用コアを設けずに特定のリアルタイムタスクを規定時間までに完了させるための技術を開示した従来技術として、例えば特許文献1(特開2005-157955号公報)がある。 For example, Patent Document 1 (Japanese Patent Laid-Open No. 2005-157955) discloses a technique for disclosing a specific real-time task by a specified time without providing a dedicated core for executing a real-time task.
 この特許文献1は、プロセッサが必要とするリアルタイムタスクの処理時間を計算して、リアルタイムタスクの規定完了時間までに余裕時間がある場合は、そのプロセッサに他の処理を実行させ、余裕がない場合は、リアルタイムタスクのみを実行させる構成としたものである。 This Patent Document 1 calculates the processing time of a real-time task required by a processor, and if there is a surplus time before the specified completion time of the real-time task, causes the processor to execute another process and there is no room Is configured to execute only real-time tasks.
 このような構成とすることで、コア(プセッサ)数に余裕がなくリアルタイム専用コアを設定することができない構成でもリアルタイムタスクのリアルタイム性を保証する構成を実現している。 This configuration realizes a configuration that guarantees the real-time performance of the real-time task even in a configuration where the number of cores (processors) is not sufficient and a real-time dedicated core cannot be set.
 しかし、本構成は、リアルタイムタスクの処理時間の計算を行うことが必要であり、また処理時間計算のための割り込みの設定も必要となるなど、多くの付加的な処理が発生するという問題がある。また、予測できないタイミングで発生するリアルタイムタスクに対する対応は難しいという問題もある。 However, this configuration has a problem that a lot of additional processing occurs, for example, it is necessary to calculate the processing time of the real-time task, and it is also necessary to set an interrupt for calculating the processing time. . Another problem is that it is difficult to deal with real-time tasks that occur at unpredictable timing.
特開2005-157955号公報JP 2005-157955 A
 本開示は、例えば上記問題点に鑑みてなされたものであり、マルチコアシステム等、複数のコア(プロセッサ)を利用して複数処理を並列に実行可能とした装置において、一部のコアをリアルタイム処理のみを実行する専用コアに設定することなく、かつ各タスクの処理時間を予め計算するといった処理を行うことなくリアルタイムタスクのリアルタイム性確保を可能とした情報処理装置、および情報処理方法、並びにプログラムを提供することを目的とする。 The present disclosure has been made in view of the above-described problems, for example, in a multi-core system or the like that uses a plurality of cores (processors) to execute a plurality of processes in parallel, and some cores are processed in real time. Information processing apparatus, information processing method, and program capable of ensuring real-time performance of a real-time task without performing processing such as pre-calculating the processing time of each task The purpose is to provide.
 本開示の第1の側面は、
 データ処理を実行する複数のコアと、
 前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
 前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
 前記タスクスケジューラは、
 前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行し、
 予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行する情報処理装置にある。
The first aspect of the present disclosure is:
Multiple cores that perform data processing;
A task scheduler for scheduling tasks executed in the plurality of cores;
The plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task,
The task scheduler
A task allocation process for causing the real-time core to execute not only a real-time task but also a non-real-time task;
The information processing apparatus executes migration for moving a non-real-time task assigned to the real-time core to another core in response to occurrence of a predetermined event.
 さらに、本開示の第2の側面は、
 情報処理装置において実行する情報処理方法であり、
 前記情報処理装置は、
 データ処理を実行する複数のコアと、
 前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
 前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
 前記タスクスケジューラが、
 前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行し、
 予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行する情報処理方法にある。
Furthermore, the second aspect of the present disclosure is:
An information processing method executed in an information processing apparatus,
The information processing apparatus includes:
Multiple cores that perform data processing;
A task scheduler for scheduling tasks executed in the plurality of cores;
The plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task,
The task scheduler is
A task allocation process for causing the real-time core to execute not only a real-time task but also a non-real-time task;
According to the information processing method, migration is performed in which a non-real-time task assigned to the real-time core is moved to another core in response to occurrence of a predetermined event.
 さらに、本開示の第3の側面は、
 情報処理装置において情報処理を実行させるプログラムであり、
 前記情報処理装置は、
 データ処理を実行する複数のコアと、
 前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
 前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
 前記プログラムは、前記タスクスケジューラに、
 前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行させ、
 予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行させるプログラムにある。
Furthermore, the third aspect of the present disclosure is:
A program for executing information processing in an information processing apparatus;
The information processing apparatus includes:
Multiple cores that perform data processing;
A task scheduler for scheduling tasks executed in the plurality of cores;
The plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task,
The program is stored in the task scheduler.
Causing the real-time core to execute a task assignment process for executing not only a real-time task but also a non-real-time task;
In accordance with the occurrence of a predefined event, there is a program for executing a migration that moves a non-real-time task assigned to the real-time core to another core.
 なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。 Note that the program of the present disclosure is a program that can be provided by, for example, a storage medium or a communication medium provided in a computer-readable format to an information processing apparatus or a computer system that can execute various program codes. By providing such a program in a computer-readable format, processing corresponding to the program is realized on the information processing apparatus or the computer system.
 本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。 Further objects, features, and advantages of the present disclosure will become apparent from a more detailed description based on embodiments of the present disclosure described below and the accompanying drawings. In this specification, the system is a logical set configuration of a plurality of devices, and is not limited to one in which the devices of each configuration are in the same casing.
 本開示の一実施例の構成によれば、リアルタイムコアにおいて非リアルタイムタスクを実行させて処理効率を向上させ、かつリアルタイムタスクのリアルタイム性を確保した構成が実現される。
 具体的には、例えば、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成された複数コアと、複数コアのタスクのスケジューリングを行うタスクスケジューラを有する。タスクスケジューラは、リアルタイムコアにリアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当てを実行し、予め規定した事象発生に応じて、リアルタイムコアに割り当てた非リアルタイムタスクを他コアに移動するマイグレーションを行う。
 本構成により、リアルタイムコアにおいて非リアルタイムタスクを実行させて処理効率を向上させ、かつリアルタイムタスクのリアルタイム性を確保した構成が実現される。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
According to the configuration of an embodiment of the present disclosure, a configuration in which non-real-time tasks are executed in the real-time core to improve processing efficiency and the real-time property of the real-time task is ensured is realized.
Specifically, for example, it has a real-time core that executes a real-time task, a plurality of cores configured by a non-real-time core that executes a non-real-time task, and a task scheduler that schedules the tasks of the plurality of cores. The task scheduler executes task assignment that allows the real-time core to execute not only real-time tasks but also non-real-time tasks, and migrates non-real-time tasks assigned to real-time cores to other cores in response to the occurrence of a predefined event. Do.
With this configuration, a non-real-time task is executed in the real-time core to improve processing efficiency, and a configuration that ensures the real-time property of the real-time task is realized.
Note that the effects described in the present specification are merely examples and are not limited, and may have additional effects.
リアルタイムタスク(リアルタイム処理)について説明する図である。It is a figure explaining a real-time task (real-time processing). コア間のタスク移動処理(マイグレーション)について説明する図である。It is a figure explaining task movement processing (migration) between cores. リアルタイム処理を行うための専用コアを設定するシールド処理について説明する図である。It is a figure explaining the shield process which sets the exclusive core for performing a real-time process. 従来の厳格なシールド処理について説明する図である。It is a figure explaining the conventional strict shielding process. 緩やかなシールド構成を行う本開示の構成について図である。It is a figure about the structure of this indication which performs a loose shield structure. カーネルの実行するコアに対するタスクの割り当てや、タスクの移動(マイグレーション)処理について説明する図である。It is a figure explaining the assignment of the task with respect to the core which a kernel performs, and the movement (migration) process of a task. タスクスケジューラの実行する処理シーケンスについて説明するフローチャートを示す図である。It is a figure which shows the flowchart explaining the process sequence which a task scheduler performs. リアルタイムコアで実行中のリアルタイム処理のリアルタイム性(規定時間までの処理完了確実性)の確保に影響する処理(リアルタイム性阻害処理)の具体例について説明する図である。It is a figure explaining the specific example of the process (real-time inhibition process) which influences ensuring of the real-time property (process completion certainty to regulation time) of the real-time process currently performed by the real-time core. 内視鏡システムの構成例を示す図である。It is a figure which shows the structural example of an endoscope system. リアルタイムコアであるコア1(CPU1)131と、デバイスA(GPU)141の処理シーケンスについて説明する図である。It is a figure explaining the processing sequence of the core 1 (CPU1) 131 which is a real-time core, and the device A (GPU) 141. FIG. 情報処理装置のハードウェア構成例について説明する図である。FIG. 25 is a diagram for describing an example hardware configuration of an information processing device.
 以下、図面を参照しながら本開示の情報処理装置、および情報処理方法、並びにプログラムの詳細について説明する。なお、説明は以下の項目に従って行なう。
 1.リアルタイムタスク(リアルタイム処理)について
 2.コア間のタスク移動処理(マイグレーション)について
 3.シールド処理によるリアルタイム処理の実行例について
 4.特定コアでリアルタイム処理を行うとともに装置全体の処理効率を向上させた構成について
 5.各コアにおける実行タスクの制御を行うタスクスケジューラについて
 6.本開示の処理を適用した具体的なシステムの構成と処理例について
 7.情報処理装置の構成例について
 8.本開示の構成のまとめ
Hereinafter, the details of the information processing apparatus, the information processing method, and the program of the present disclosure will be described with reference to the drawings. The description will be made according to the following items.
1. 1. About real-time tasks (real-time processing) 2. Task migration processing (migration) between cores 3. Execution example of real-time processing by shield processing 4. Configuration that performs real-time processing with a specific core and improves the processing efficiency of the entire device. 5. Task scheduler that controls execution tasks in each core 6. Specific system configuration and processing example to which the processing of the present disclosure is applied 7. Configuration example of information processing apparatus Summary of composition of this disclosure
  [1.リアルタイムタスク(リアルタイム処理)について]
 まず、図1を参照して、リアルタイムタスク(リアルタイム処理)について説明する。
 前述したように、複数の異なるタスク(処理)を並列に実行させるために複数のコア(プロセッサ)を並列動作可能としたマルチコアシステム等、複数のコア(プロセッサ)を有する情報処理装置が利用される。
 複数のコア(プロセッサ)を有する情報処理装置が実行する処理には、
 (a)規定時間までの処理完了が必要とされる処理、すなわち、リアルタイム性が要求されるリアルタイムタスク(リアルタイム処理)、
 (b)特定の規定時間までの処理完了が要求されないノンリアルタイムタスク(ノンリアルタイム処理)、
 これら、2種類のタスク(処理)が混在する。
[1. About real-time tasks (real-time processing)
First, a real-time task (real-time processing) will be described with reference to FIG.
As described above, an information processing apparatus having a plurality of cores (processors) such as a multi-core system in which a plurality of cores (processors) can be operated in parallel in order to execute a plurality of different tasks (processes) in parallel is used. .
For processing executed by an information processing apparatus having a plurality of cores (processors),
(A) Processing that requires completion of processing up to a specified time, that is, a real-time task that requires real-time performance (real-time processing),
(B) Non-real-time task (non-real-time processing) that does not require completion of processing up to a specified time,
These two types of tasks (processes) are mixed.
 具体的には、例えば、ビデオカメラで、画像の撮影を行い、モニタ(表示部)に表示される撮影画像を見ながら作業を行う場合、カメラ撮影画像からモニタ(表示部)出力までの時間に遅延が発生してしまうと、作業が遅延してしまったり、表示が乱れる可能性がある。最悪、モニタの表画像を見ながらの作業は不可能になる。
 この場合の画像処理は、基本的にリアルタイム処理として実行することが必要となる。
Specifically, for example, when an image is taken with a video camera and the work is performed while viewing the photographed image displayed on the monitor (display unit), the time from the camera photographed image to the monitor (display unit) output is determined. If the delay occurs, the work may be delayed or the display may be distorted. At worst, it is impossible to work while looking at the front image of the monitor.
Image processing in this case basically needs to be executed as real-time processing.
 このような画像処理を実行する情報処理装置(画像処理装置)が、例えば、撮影画像のモニタ出力と、撮影画像のハードディスク等の記憶手段に記録する処理を並列に行う場合がある。
 記憶手段に対する記録画像は、多くの場合、リアルタイムで参照する必要がない。すなわち、画像記録処理は、多少の時間遅れが発生しても問題はない。このような処理は、ノンリアルタイムタスク(ノンリアルタイム処理)として実行することが許容される。
An information processing apparatus (image processing apparatus) that executes such image processing may perform, for example, a monitor output of a captured image and a process of recording the captured image in a storage unit such as a hard disk in parallel.
In many cases, it is not necessary to refer to the recorded image for the storage means in real time. In other words, there is no problem in the image recording process even if a slight time delay occurs. Such processing is allowed to be executed as a non-real-time task (non-real-time processing).
 複数のコア(プロセッサ)を並列動作可能としたマルチコアシステムにおいては、リアルタイム処理と、ノンリアルタイム処理が混在し、これら複数の異なる処理を複数のコアが各々、担当して処理を行うことになる。 In a multi-core system in which a plurality of cores (processors) can be operated in parallel, real-time processing and non-real-time processing are mixed, and a plurality of different processing is performed by each of the plurality of cores.
 なお、リアルタイムタスク(リアルタイム処理)には、さらに、以下の2種類の処理がある。
 (a1)周期処理
 (a2)非周期処理
The real-time task (real-time processing) further includes the following two types of processing.
(A1) Periodic processing (a2) Aperiodic processing
 (a1)周期処理は、予め定められた定期的に発生する処理である。上述したカメラの撮影画像をモニタ(表示部)に出力するための画像処理も周期処理である
 カメラの撮影画像をモニタに出力するための画像処理では、所定のフレームレートデ撮影される画像を周期的に処理することが必要であり、周期処理となる。
(A1) Periodic processing is processing that occurs periodically in advance. The above-described image processing for outputting the captured image of the camera to the monitor (display unit) is also periodic processing. In the image processing for outputting the captured image of the camera to the monitor, an image captured at a predetermined frame rate is cycled. It is necessary to perform processing periodically, which is a periodic process.
 例えば、カメラは、1秒間に60フレームの画像を撮影する60f/sや、1秒間に120フレームの画像を撮影する120f/sといった様々なフレームレートで画像を撮影する。
 コア(プロセッサ)は、これら規定のフレーム間隔の連続画像の各々に対して周期的な処理を行う必要がある。
For example, the camera captures images at various frame rates, such as 60 f / s for capturing an image of 60 frames per second and 120 f / s for capturing an image of 120 frames per second.
The core (processor) needs to perform periodic processing on each of the continuous images at the prescribed frame intervals.
 一方、(a2)非周期処理は、突発的なイベントが発生した際に予め規定された応答時間内にイベント対応の処理を実行するものである。
 例えば、動画撮影中にカメラや被写体が移動するなどして焦点距離が変化した場合に焦点調整が必要となる。焦点調整が予め規定された時間内に完了できないと、ぼやけた画像しか得られず鮮明な動画を撮影することはできない。同様に手ぶれ補正処理なども、手ぶれを検出してから予め規定された時間内に補正処理を完了できないと、補正が間に合わずに目的を達成できない。
 このような処理は非周期的なリアルタイムタスクである。
On the other hand, (a2) non-periodic processing is to execute event-corresponding processing within a predetermined response time when a sudden event occurs.
For example, focus adjustment is required when the focal length changes due to movement of a camera or subject during moving image shooting. If the focus adjustment cannot be completed within a predetermined time, only a blurred image can be obtained and a clear moving image cannot be taken. Similarly, in the camera shake correction process or the like, if the correction process cannot be completed within a predetermined time after the camera shake is detected, the correction cannot be made in time and the purpose cannot be achieved.
Such processing is an aperiodic real-time task.
 周期型のリアルタイムタスクは、予め定めた時間ごとに一周期の処理を実行することが要求され、割り込み応答型のリアルタイムタスクは、上記の医師の操作等のイベント発生から、予め定めた応答時間内に処理を完了することが要求される。 A periodic real-time task is required to execute one cycle of processing at a predetermined time, and an interrupt response-type real-time task is executed within a predetermined response time from the occurrence of an event such as the above-mentioned doctor operation. To complete the process.
 図1を参照して、コア(プロセッサ)によるリアルタイムタスクの実行シーケンスの例について説明する。
 図1には、複数のコア(プロセッサ)を有する情報処理装置内の1つのコア(プロセッサ)によるリアルタイムタスクの実行シーケンスの3つの例を示している。
 なお、リアルタイムタスクの、
 イベント発生時間=Ts、
 処理完了規定時間=Te、
 とする。
 リアルタイムタスクのリアルタイム性を満足するためには、イベント発生時間後、所定時間(Te-Ts)経過後の処理完了規定時間(Te)までに処理を完了させることが必要となる。
With reference to FIG. 1, an example of an execution sequence of a real-time task by a core (processor) will be described.
FIG. 1 shows three examples of real-time task execution sequences by one core (processor) in an information processing apparatus having a plurality of cores (processors).
For real-time tasks,
Event occurrence time = Ts
Processing completion specified time = Te,
And
In order to satisfy the real-time property of the real-time task, it is necessary to complete the processing by the predetermined processing completion time (Te) after the predetermined time (Te-Ts) after the event occurrence time.
 (1)処理例1は、リアルタイムタスクの規定時間内の処理完了に成功した例である。
 処理例1では、イベント発生時間=Tsの後、所定の遅延時間(latency)後の時間T1にコアによる処理が開始され、時間T2に処理が終了している。
 処理終了時間T2は、処理完了規定時間Teより前の時間であり、この処理例1は、リアルタイム処理の成功例である。
(1) Processing example 1 is an example in which processing within a specified time for a real-time task is successfully completed.
In Processing Example 1, after the event occurrence time = Ts, the processing by the core is started at time T1 after a predetermined delay time (latency), and the processing is ended at time T2.
The processing end time T2 is a time before the processing completion specified time Te, and this processing example 1 is a successful example of real-time processing.
 (2)処理例2は、リアルタイムタスクの規定時間内の処理完了の失敗例である。
 処理例2では、イベント発生時間=Tsの後、所定の遅延時間(latency)後の時間T1にコアによる処理が開始され、ここまでは、処理例1と同じである。しかし、処理終了時間T2は、処理完了規定時間Teより後の時間であり、この処理例2は、リアルタイム処理の失敗例である。
(2) Processing example 2 is a failure example of processing completion within a specified time of a real-time task.
In the processing example 2, the processing by the core is started at a time T1 after a predetermined delay time (latency) after the event occurrence time = Ts, and so far, the processing is the same as the processing example 1. However, the processing end time T2 is a time after the processing completion specified time Te, and this processing example 2 is an example of failure of real-time processing.
 この処理例2は、リアルタイムタスクの処理時間が長くなってしまった例である。これは、例えば、リアルタイムタスクの処理において必要となるリソースやデータが他のコアが実行する別のタスク(処理)の利用リソースやデータと競合し、リソースやデータを取得する待ち時間が発生する場合などに起こり得る例である。 This processing example 2 is an example in which the processing time of the real-time task has become longer. This is because, for example, resources and data required for real-time task processing compete with resources and data used by other tasks (processing) executed by other cores, and there is a waiting time for acquiring resources and data. This is an example that can occur.
 (3)処理例3も、リアルタイムタスクの規定時間内の処理完了失敗例である。
 処理例3では、イベント発生時間=Tsの後、所定の遅延時間(latency)後の時間T1にコアによる処理が開始されているが、イベント発生時間Tsから、処理開始時間T1までの遅延時間が、処理例1,2に比較して長くなっている。
 処理開始時間T1から、処理終了時間T2までの時間は、処理例1よりも短いが、結果として、処理終了時間T2は、処理完了規定時間Teより後の時間であり、この処理例3もリアルタイムタスクの処理失敗例である。
(3) Processing example 3 is also an example of a process completion failure within a specified time of the real-time task.
In the processing example 3, the processing by the core is started at the time T1 after a predetermined delay time (latency) after the event occurrence time = Ts, but the delay time from the event occurrence time Ts to the processing start time T1 is started. In comparison with the processing examples 1 and 2, it is longer.
Although the time from the process start time T1 to the process end time T2 is shorter than the process example 1, as a result, the process end time T2 is a time after the process completion specified time Te, and this process example 3 is also real time. This is an example of task processing failure.
 この処理例3は、イベント発生時間Tsから、処理開始時間T1までの間に、このコアにおいて別の処理、例えば別のリアルタイムタスクまたはノンリアルタイムタスクが実行中であり、そのタスク(処理)の終了を待機する必要がある場合などに発生する例である。 In this processing example 3, during the period from the event occurrence time Ts to the processing start time T1, another processing, for example, another real-time task or non-real-time task is being executed in this core, and the task (processing) ends. This is an example that occurs when it is necessary to wait.
  [2.コア間のタスク移動処理(マイグレーション)について]
 次に、図2を参照してコア間のタスク移動処理(マイグレーション)について説明する。
 マルチコアシステム等、複数のコア(プロセッサ)を有する情報処理装置において、複数のコアの各々は、それぞれに割り当てられたタスク(処理)を実行する。
[2. Task migration processing (migration) between cores]
Next, task movement processing (migration) between cores will be described with reference to FIG.
In an information processing apparatus having a plurality of cores (processors) such as a multi-core system, each of the plurality of cores executes a task (processing) assigned thereto.
 各コアにおいて実行されるタスクは、様々な異なるタスクであり、必要となる処理時間も異なるものとなる。
 従って、例えば2つのコアを利用してさまざまなタスクを実行させる構成において、各コアに割り当てられる処理のバランスが悪くなる場合がある。
 具体的には、一方のコアに割り当てられたタスクの処理量が多く、他方のコアに割り当てられたタスクの処理量が少なく、他方のコアに空き時間が発生してしまうといったことがある。
The tasks executed in each core are various different tasks, and the required processing time is also different.
Therefore, for example, in a configuration in which various tasks are executed using two cores, the balance of processing assigned to each core may deteriorate.
Specifically, there is a case where the processing amount of the task assigned to one core is large, the processing amount of the task assigned to the other core is small, and an idle time occurs in the other core.
 このような場合、一方のコアに割り当てられていたタスクを他方のコアに移動させて処理を行わせることがある。
 このようなコア間のタスク移動処理をマイグレーションと呼ぶ。
In such a case, the task assigned to one core may be moved to the other core for processing.
Such task movement processing between cores is called migration.
 図2を参照して、マイグレーションの具体例について説明する。
 図2には、2つのコア(CPU)を利用してタスク(処理)を実行する構成におけるマイグレーションの例を示している。
 図に示す左から右の時間帯T10~T20,T20~T30,T30~T40の順に時間が経過する。図には、各時間帯における2つのコア1(CPU1)とコア2(CPU2)のタスクの実行状況を示している。
A specific example of migration will be described with reference to FIG.
FIG. 2 shows an example of migration in a configuration in which tasks (processes) are executed using two cores (CPUs).
Time elapses in the order of time zones T10 to T20, T20 to T30, and T30 to T40 from the left to the right shown in the figure. The figure shows the task execution status of the two cores 1 (CPU 1) and 2 (CPU 2) in each time zone.
 時間帯T10~T20では、
 コア1(CPU1)は、タスクA、タスクB、タスクCを実行している。コア1(CPU1)は、これらの3つのタスクを例えば時分割処理として実行している。
 (時間T10~T20)に示すコア1(CPU1)のタスクA~Cの領域の大きさは、コア1(CPU1)における各タスクの処理時間の配分比率に対応する。
 一方、コア2(CPU2)は、タスクDのみを実行しており、処理を行っていない空き時間が存在する。
In time zone T10-T20,
Core 1 (CPU 1) executes task A, task B, and task C. The core 1 (CPU 1) executes these three tasks as, for example, time division processing.
The size of the task A to C area of the core 1 (CPU 1) shown at (time T10 to T20) corresponds to the distribution ratio of the processing time of each task in the core 1 (CPU 1).
On the other hand, the core 2 (CPU 2) executes only the task D and there is a free time during which no processing is performed.
 このように一方のコアにタスクが集中し、他方のコアに空き時間が発生する処理不均衡が発生すると、総合的な処理時間、例えば、タスクA~Dの全てのタスクを完了させるまでの時間が長くなってしまう。 When a processing imbalance occurs such that tasks concentrate on one core and idle time occurs on the other core, the total processing time, for example, the time until all tasks of tasks A to D are completed. Will become longer.
 このような場合に、コア間のタスク移動、すなわちマイグレーションが有効となる。
 図2の時間T20~T30の間に、コア1(CPU1)の実行処理として割り当てられていたタスクBを、コア2(CPU2)に移動させる。
 このコア間のタスク移動処理、すなわち、マイグレーションにより、コア1とコア2の処理量をほぼ均等にすることができる。
In such a case, task movement between cores, that is, migration is effective.
During time T20 to T30 in FIG. 2, the task B assigned as the execution process of the core 1 (CPU 1) is moved to the core 2 (CPU 2).
Through the task movement processing between the cores, that is, migration, the processing amounts of the core 1 and the core 2 can be made substantially equal.
 マイグレーション処理後の、時間T30~T40では、
 コア1(CPU1)は、タスクAとタスクCのみを実行する。
 一方、コア2(CPU2)は、タスクDとタスクBを実行する。
 なお、時間T30~T40における図中の矢印は、各コアにおける各タスクの処理時間の配分を拡張できることを意味している。
At time T30 to T40 after the migration process,
Core 1 (CPU 1) executes only task A and task C.
On the other hand, the core 2 (CPU 2) executes task D and task B.
Note that arrows in the figure at times T30 to T40 mean that the distribution of processing time of each task in each core can be expanded.
 すなわち、コア1(CPU1)は、時間T10~T20において実行していたタスクBの処理時間を、タスクAとタスクCの処理時間として利用可能となる。
 また、コア2(CPU2)は、時間T10~T20における空き時間の全てを、マイグレーションによって移動してきたタスクBの処理時間として利用可能となる。
That is, the core 1 (CPU 1) can use the processing time of the task B, which has been executed during the time T10 to T20, as the processing time of the task A and the task C.
In addition, the core 2 (CPU 2) can use all of the free time in the times T10 to T20 as the processing time of the task B that has moved by migration.
 このようなマイグレーションを行うことで、マルチコアシステムにおけるトータルの処理効率を高めることが可能となる。 By performing such migration, it is possible to increase the total processing efficiency in the multi-core system.
  [3.シールド処理によるリアルタイム処理の実行例について]
 次に、図3を参照してリアルタイム処理を行うための専用コアを設定するシールド処理について説明する。
[3. Example of real-time processing using shield processing]
Next, shield processing for setting a dedicated core for performing real-time processing will be described with reference to FIG.
 一部のコアを特定の処理専用に割り当て、その処理に影響する外乱が入らないようにするコアの隔離処理(技術)をシールド処理、あるいはシールディング技術と呼ぶ。
 図3には、4つのコア、コア1(CPU1)~コア4(CPU4)の4つのコアを有するマルチコアシステムに対するシールド処理の一例を示している。
A core isolation process (technology) that allocates a part of a core to a specific process and prevents disturbances that affect the process is called a shield process or a shielding technique.
FIG. 3 shows an example of shield processing for a multi-core system having four cores, that is, four cores, core 1 (CPU 1) to core 4 (CPU 4).
 図3に示す4コア構成において、左から2つ目のコア2(CPU2)を、リアルタイム処理専用のリアルタイムコアに設定する。すなわち、コア2(CPU2)をシールド(隔離)して、リアルタイム処理専用コアに設定する。
 コア2(CPU2)以外の他のコアは、非リアルタイム処理を実行する非リアルタイムコアとする。
In the 4-core configuration shown in FIG. 3, the second core 2 (CPU 2) from the left is set as a real-time core dedicated to real-time processing. That is, the core 2 (CPU 2) is shielded (isolated) and set as a real-time processing-dedicated core.
Other cores other than the core 2 (CPU 2) are non-real-time cores that execute non-real-time processing.
 リアルタイムコアであるコア2(CPU2)には、リアルタイムタスクのみが割り当てられる。
 コア2(CPU2)以外の他のコア(コア1(CPU1),コア3(CPU3),コア4(CPU4))は、非リアルタイムタスクである様々なアプリケーション(App)を実行する。
 なお、各コアは、全てカーネルスレッドも実行する。
 カーネルスレッドは、各コアにおけるタスク実行に必要となるリソースやメモリの管理、さらにタスク切り替え等の処理を実行するカーネルの処理の一部に相当する。
 なお、カーネルは、OS(オペレーティングシステム)の中核となるソフトウェアである。
Only a real-time task is assigned to the core 2 (CPU 2) which is a real-time core.
Other cores (core 1 (CPU 1), core 3 (CPU 3), and core 4 (CPU 4)) other than core 2 (CPU 2) execute various applications (App) that are non-real-time tasks.
Each core also executes a kernel thread.
The kernel thread corresponds to a part of kernel processing that executes processing such as management of resources and memory necessary for task execution in each core and task switching.
The kernel is software that is the core of the OS (operating system).
 リアルタイムコアであるコア2(CPU2)は、リアルタイムタスクの処理に必要となるデバイス、図に示すデバイスBからの割り込みのみを受信する。
 他のデバイスからのリアルタイムコアへの割り込みは禁止される。
 一方、コア2(CPU2)以外の他のコア(コア1(CPU1),コア3(CPU3),コア4(CPU4))は、様々なデバイスからの割り込みが許容される。
Core 2 (CPU 2), which is a real-time core, receives only an interrupt from a device necessary for processing a real-time task, device B shown in the figure.
Interrupts to the real-time core from other devices are prohibited.
On the other hand, other cores (core 1 (CPU 1), core 3 (CPU 3), core 4 (CPU 4)) other than core 2 (CPU 2) are allowed to interrupt from various devices.
 デバイスは、コアによる処理結果を必要とするデバイスであり、例えばGPU(グラフィックプロセッシングユニット)、ハードディスク(HD)、USB等、様々なデバイスによって構成される。 The device is a device that requires a processing result by the core, and is configured by various devices such as a GPU (graphic processing unit), a hard disk (HD), and a USB.
 なお、リアルタイムコアであるコア2(CPU2)に対する割り込み許容デバイスは、図3に示す例では、デバイスBのみ1つであるが、複数のデバイスである場合もある。
 例えば、コア2(CPU2)において実行するリアルタイムタスクを、前述した例と同様、撮影画像のモニタ出力のための処理であるとする。
 この場合、デバイスBは、例えばGPU(グラフィックプロセッシングユニット)等である。
Note that in the example shown in FIG. 3, only one device B is the interrupt-permitting device for the core 2 (CPU 2), which is a real-time core, but there may be a plurality of devices.
For example, it is assumed that the real-time task executed in the core 2 (CPU 2) is processing for monitor output of a captured image, as in the above-described example.
In this case, the device B is, for example, a GPU (graphic processing unit).
 リアルタイムコアであるコア2(CPU2)は、例えばGPUにおける画像処理プロセスに必要となる画像処理パラメータの生成を実行する。コア2(CPU2)は。生成したパラメータをGPUに提供する。GPUはコア2(CPU2)の生成パラメータを利用してモニタ出力用の画像を生成する。
 これら一連の処理は、カメラ撮影画像を即時にモニタ出力するために時間遅れなく実行することが必要となる。
 すなわち、コア2(CPU2)において実行する画像パラメータ生成処理はリアルタイムタスクとなる。
The core 2 (CPU 2), which is a real-time core, executes generation of image processing parameters necessary for an image processing process in a GPU, for example. Core 2 (CPU2). Provide the generated parameters to the GPU. The GPU uses the generation parameters of the core 2 (CPU 2) to generate an image for monitor output.
These series of processes need to be executed without time delay in order to immediately output the camera-captured image to the monitor.
That is, the image parameter generation process executed in the core 2 (CPU 2) is a real-time task.
 図3に示すリアルタイムコアであるコア2(CPU2)におけるリアルタイムタスクのリアルタイム性、すなわち規定時間までのタスク完了(処理完了)を保証するため、コア2(CPU2)の隔離処理、すなわちシールド処理として、以下の処理を行う。
 (1)リアルタイムコアには、リアルタイムタスクのみを割り当てる。
 (2)リアルタイムコアには、リアルタイムタスクの処理に必要となるデバイスからの割り込みのみを許容し、他デバイスからの割り込みを禁止する。
In order to guarantee the real-time property of the real-time task in the core 2 (CPU 2), which is the real-time core shown in FIG. 3, that is, task completion (processing completion) up to a specified time, The following processing is performed.
(1) Only real-time tasks are assigned to real-time cores.
(2) The real-time core allows only interrupts from devices necessary for processing real-time tasks, and prohibits interrupts from other devices.
 上記(1),(2)の2つの処理を伴うシールド処理により、リアルタイムコアであるコア2(CPU2)は、リアルタイムタスクを他のタスクや割り込みにより中断されることなく実行でき、リアルタイムタスクを規定時間内に完了させることができる。すなわちリアルタイム性を保証した処理が可能となる。 The shield process with the two processes (1) and (2) above allows the core 2 (CPU 2), which is a real-time core, to execute a real-time task without being interrupted by other tasks or interrupts. Can be completed in time. That is, processing that guarantees real-time performance is possible.
  [4.特定コアでリアルタイム処理を行うとともに装置全体の処理効率を向上させた構成について]
 次に、特定コアでリアルタイム処理を行うとともに装置全体の処理効率を向上させた本開示の構成について説明する。
[4. About a configuration that performs real-time processing with a specific core and improves the processing efficiency of the entire device]
Next, a configuration of the present disclosure in which real-time processing is performed with a specific core and processing efficiency of the entire apparatus is improved will be described.
 本開示の構成は、新たなシールディング技術を適用した処理を実行する構成である。
 具体的には、リアルタイム処理を実行するシールド対象のコアにおいても、そのコアにおいて実行されるリアルタイムタスクが規定時間に完了可能である限り、非リアルタイムタスクも実行させる構成としたものである。
The configuration of the present disclosure is a configuration that executes a process to which a new shielding technique is applied.
Specifically, the shielded core that executes real-time processing is also configured to execute a non-real-time task as long as the real-time task executed in the core can be completed within a specified time.
 すなわち本開示の構成では、リアルタイムタスクを実行するコアのシールド処理を緩やかなシールド処理とする。すなわち、リアルタイムタスク実行コアにおいても状況に応じて非リアルタイムタスクを実行させる構成としたものである。
 このように、リアルタイムタスクの実行コアにおいても非リアルタイムタスクを実行させることで、コア数の余裕のない構成においても、装置全体の処理効率を向上させることが可能となる。
That is, in the configuration of the present disclosure, the shield process of the core that executes the real-time task is a gentle shield process. That is, the real-time task execution core is also configured to execute a non-real-time task depending on the situation.
As described above, by executing the non-real-time task even in the execution core of the real-time task, it becomes possible to improve the processing efficiency of the entire apparatus even in a configuration without a sufficient number of cores.
 以下、図4と図5を参照して、従来の厳格なシールド構成と、本開示の緩やかなシールド構成の差異について説明する。
 図4は、従来の厳格なシールド構成について説明する図であり、図5は、本開示の緩やかなシールド構成を説明する図である。
Hereinafter, with reference to FIG. 4 and FIG. 5, a difference between the conventional strict shield configuration and the gentle shield configuration of the present disclosure will be described.
FIG. 4 is a diagram illustrating a conventional strict shield configuration, and FIG. 5 is a diagram illustrating a gradual shield configuration of the present disclosure.
 まず、図4を参照して、従来の厳格なシールド構成について説明する。
 図4に示す構成は、先に図3を参照して説明した構成と同様の構成であり、4つのコア、コア1(CPU1)~コア4(CPU4)の4つのコアを有するマルチコアシステム構成である。
First, a conventional strict shield configuration will be described with reference to FIG.
The configuration shown in FIG. 4 is the same as the configuration described above with reference to FIG. 3, and is a multi-core system configuration having four cores, that is, four cores, core 1 (CPU 1) to core 4 (CPU 4). is there.
 図4に示す4コア構成において、左から2つ目のコア2(CPU2)に対して従来型の厳格なシールド(隔離)処理を実行し、コア2(CPU2)をリアルタイムタスク専用のリアルタイムコアに設定する。
 コア2(CPU2)以外の他のコアは、非リアルタイムタスクを実行する非リアルタイムコアとする。
In the four-core configuration shown in FIG. 4, conventional strict shielding (isolation) processing is executed for the second core 2 (CPU 2) from the left, and the core 2 (CPU 2) is made a real-time core dedicated to real-time tasks. Set.
Other cores other than the core 2 (CPU 2) are non-real-time cores that execute non-real-time tasks.
 従来の厳格なシールドがなされたリアルタイムコアであるコア2(CPU2)には、リアルタイムタスク(RT)のみが割り当てられる。
 コア2(CPU2)以外の他のコア(コア1(CPU1),コア3(CPU3),コア4(CPU4))は、非リアルタイムタスク(non-RT)を実行する。
Only the real-time task (RT) is assigned to the core 2 (CPU 2), which is a conventional real-time core with a strict shield.
Other cores (core 1 (CPU 1), core 3 (CPU 3), core 4 (CPU 4)) other than core 2 (CPU 2) execute a non-real-time task (non-RT).
 なお、図4には示していないが、先に図3を参照して説明したと同様、各コアは、全てカーネルスレッドも実行する。
 前述したように、カーネルスレッドは、OS(オペレーティングシステム)の中核となるソフトウェアであるカーネル対応の処理であり、各コアにおけるタスク実行に必要となるリソースやメモリの管理、さらにタスク切り替え等の処理等が含まれる。
Although not shown in FIG. 4, each core also executes a kernel thread, as described above with reference to FIG.
As described above, the kernel thread is a process corresponding to the kernel, which is the core software of the OS (operating system), management of resources and memory necessary for task execution in each core, and processing such as task switching Is included.
 図4に示す4つのコア、すなわち、コア1(CPU1)~コア4(CPU4)は、様々なデバイス、例えば、GPU(グラフィックプロセッシングユニット)、ハードディスク(HD)、USB等、様々なデバイス対応の処理を実行する。 The four cores shown in FIG. 4, that is, core 1 (CPU 1) to core 4 (CPU 4), are processes corresponding to various devices such as a GPU (graphic processing unit), a hard disk (HD), and a USB. Execute.
 ただし、厳格なシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)は、リアルタイムタスクの処理に必要となるデバイスからの割り込みのみを受信し、そのデバイス対応の処理のみを実行する。
 厳格なシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)には、他のデバイスからの割り込みは禁止される。
However, the core 2 (CPU 2), which is a real-time core isolated by strict shielding processing, receives only an interrupt from a device necessary for processing a real-time task, and executes only processing corresponding to the device.
Interrupts from other devices are prohibited for the core 2 (CPU 2), which is a real-time core isolated by strict shielding processing.
 コア2(CPU2)以外の他のコア(コア1(CPU1),コア3(CPU3),コア4(CPU4))は、様々なデバイスからの割り込みが許容される。 Interrupts from various devices are allowed for cores other than core 2 (CPU 2) (core 1 (CPU 1), core 3 (CPU 3), core 4 (CPU 4)).
 このように、図4に示す厳格なシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)は、リアルタイムタスクのリアルタイム性、すなわち規定時間までのタスク完了を保証するため、以下の厳格なシールド処理が行われる。
 (1)リアルタイムコアには、リアルタイムタスクのみを割り当てる。
 (2)リアルタイムコアには、リアルタイムタスクの処理に必要となるデバイスからの割り込みのみを許容し、他デバイスからの割り込みを禁止する。
As described above, the core 2 (CPU 2), which is a real-time core isolated by the strict shielding process shown in FIG. 4, has the following strict shielding in order to guarantee the real-time property of the real-time task, that is, the task completion up to a specified time. Processing is performed.
(1) Only real-time tasks are assigned to real-time cores.
(2) The real-time core allows only interrupts from devices necessary for processing real-time tasks, and prohibits interrupts from other devices.
 上記(1),(2)の2つの処理を伴う厳格なシールド処理により、リアルタイムコアであるコア2(CPU2)は、リアルタイムタスクを他のタスクや割り込みにより中断されることなく実行でき、リアルタイムタスクを規定時間内に完了させることができる。すなわちリアルタイム性を確保した処理が可能となる。 With the strict shielding process involving the two processes (1) and (2) above, the core 2 (CPU 2), which is a real-time core, can execute a real-time task without being interrupted by other tasks or interrupts. Can be completed within a specified time. That is, processing that ensures real-time performance is possible.
 しかし、このような厳格なシールド処理を行ってしまうと、リアルタイムコアであるコア2(CPU2)ではリアルタイムタスクのみが実行され、非リアルタイムタスクは、リアルタイムコア以外の非リアルタイムコアが全て処理を行わなければならない。 However, if such a strict shielding process is performed, only the real-time task is executed in the core 2 (CPU 2), which is the real-time core, and all non-real-time cores other than the real-time core must perform processing. I must.
 コア数が多く、多くの非リアルタイムタスクを同時に実行することが可能な構成であれば問題ないが、例えばコア数が2つや3つの少ないコア数の設定では、シールドされたリアルタイムコア以外の非リアルタイムコアの処理負荷が増大し、非リアルタイムタスクの完了までの時間が長くなり、装置全体の処理効率が著しく低下してしまうという問題が発生する。 There is no problem if the number of cores is large and many non-real-time tasks can be executed at the same time. For example, when setting the number of cores to two or three, the non-real-time cores other than the shielded real-time core The processing load of the core increases, the time until completion of the non-real-time task becomes long, and there arises a problem that the processing efficiency of the entire apparatus is remarkably lowered.
 図4に示すように、厳格なシールド処理を行うと、リアルタイムコアであるコア2(CPU2)は、リアルタイムタスク(RT)のみ実行可能であり、空き時間があるにも関わらず、非リアルタイムタスクは割り当てられず実行できない。
 結果として、多くの非リアルタイムタスクが発生した場合、少ない数の非リアルタイムコアがこれら全ての非リアルタイムタスクを実行しなければならず、非リアルタイムタスクの処理遅延が大きくなるという問題が発生する。
As shown in FIG. 4, when strict shielding processing is performed, the real-time core 2 (CPU 2) can execute only the real-time task (RT). Unassigned and cannot be executed.
As a result, when many non-real-time tasks occur, a small number of non-real-time cores must execute all these non-real-time tasks, which causes a problem that the processing delay of the non-real-time tasks increases.
 このような問題を解決する本開示の構成、すなわち、緩やかなシールド処理を行う本開示の構成について、図5を参照して説明する。
 図5に示す構成も、図4を参照して説明した構成と同様の構成であり、4つのコア、コア1(CPU1)~コア4(CPU4)の4つのコアを有するマルチコアシステム構成である。
A configuration of the present disclosure that solves such a problem, that is, a configuration of the present disclosure that performs gentle shielding processing will be described with reference to FIG. 5.
The configuration shown in FIG. 5 is the same as the configuration described with reference to FIG. 4, and is a multi-core system configuration having four cores, that is, four cores of core 1 (CPU 1) to core 4 (CPU 4).
 図5に示す4コア構成において、左から2つ目のコア2(CPU2)に対して本開示の緩やかなシールド(隔離)処理を実行し、コア2(CPU2)を、リアルタイムタスク(RT)を行うリアルタイムコアに設定する。
 本開示の構成では、リアルタイムコアであるコア2(CPU2)は、リアルタイムタスク(RT)のみならず、非リアルタイムタスク(non-RT)も実行する。
In the four-core configuration shown in FIG. 5, the gentle shield (isolation) processing of the present disclosure is executed for the second core 2 (CPU 2) from the left, and the core 2 (CPU 2) is changed to the real-time task (RT). Set to the real-time core to be performed.
In the configuration of the present disclosure, the core 2 (CPU 2), which is a real-time core, executes not only a real-time task (RT) but also a non-real-time task (non-RT).
 ただし、リアルタイムコアで実行中のリアルタイムタスク(RT)の規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定された場合は、その非リアルタイムタスク(non-RT)を他のコアに移動(マイグレーション)する。 However, non-real-time tasks (real-time inhibition processing) that are running in the real-time core may not be processed (real-time inhibition processing) until the specified time (real-time performance) of the real-time task (RT) running in the real-time core is hindered. If it is set as an execution scheduled process of (non-RT), the non-real-time task (non-RT) is moved (migrated) to another core.
 コア2(CPU2)以外の他のコアは、非リアルタイムタスク(non-RT)を実行する非リアルタイムコアである。 Other cores other than the core 2 (CPU 2) are non-real time cores that execute non-real time tasks (non-RT).
 図4を参照して説明した従来の厳格なシールドがなされたリアルタイムコア(コア2(CPU2))は、リアルタイムタスク(RT)のみが割り当てられていたが、図5に示す本開示の緩やかなシールドがなされたリアルタイムコア(コア2(CPU2))は、リアルタイムタスク(RT)のみならず、非リアルタイムタスク(non=RT)も実行する。 The conventional real-time core (core 2 (CPU 2)) to which the strict shield described with reference to FIG. 4 is assigned only the real-time task (RT), but the gentle shield of the present disclosure shown in FIG. The real-time core (core 2 (CPU 2)) for which notation is executed executes not only a real-time task (RT) but also a non-real-time task (non = RT).
 ただし、上述したように、リアルタイムコア(コア2(CPU2))で実行中の非リアルタイムタスク(non=RT)は、予め規定された条件の発生に基づいて非リアルタイムコアに移動される。 However, as described above, the non-real-time task (non = RT) being executed by the real-time core (core 2 (CPU 2)) is moved to the non-real-time core based on the occurrence of a predetermined condition.
 この予め規定された条件とは、リアルタイムコアで実行中のリアルタイムタスク(RT)の規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定されたことの検出である。
 この条件が発生した場合、その非リアルタイムタスク(non-RT)は他のコアに移動(マイグレーション)される。
This pre-defined condition means that processing (real-time inhibition processing) that may prevent processing completion (real-time performance) up to the specified time of the real-time task (RT) being executed in the real-time core is This is the detection that the non-real-time task (non-RT) being executed is set as the scheduled execution process.
When this condition occurs, the non-real-time task (non-RT) is moved (migrated) to another core.
 なお、図5には示していないが、先に図3を参照して説明したと同様、各コアは、全てカーネルスレッドも実行する。
 前述したように、カーネルスレッドは、OS(オペレーティングシステム)の中核となるソフトウェアであるカーネル対応の処理であり、各コアにおけるタスク実行に必要となるリソースやメモリの管理、さらにタスク切り替え等の処理である。
Although not shown in FIG. 5, each core also executes a kernel thread as described above with reference to FIG. 3.
As described above, the kernel thread is a process corresponding to the kernel, which is the core software of the OS (operating system), and manages resources and memory necessary for task execution in each core, and also performs processing such as task switching. is there.
 図5に示す4つのコア、すなわち、コア1(CPU1)~コア4(CPU4)は、様々なデバイス、例えば、GPU(グラフィックプロセッシングユニット)、ハードディスク(HD)、USB等、様々なデバイス対応の処理を実行する。 The four cores shown in FIG. 5, that is, core 1 (CPU 1) to core 4 (CPU 4), are processes corresponding to various devices such as GPU (graphic processing unit), hard disk (HD), USB, and the like. Execute.
 緩やかなシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)は、リアルタイムタスクの処理に必要となるデバイスからの割り込みのみならず、非リアルタイム処理に関する割り込みも禁止されることなく受信する。 Core 2 (CPU 2), which is a real-time core isolated by gentle shield processing, receives not only interrupts from devices necessary for real-time task processing but also non-real-time processing interrupts without being prohibited.
 前述した図4に示す厳格なシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)には、他のデバイスからの割り込みは禁止されるが、図5に示す緩やかなシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)には、他のデバイスからの割り込みも許容される。
 コア2(CPU2)以外の他のコア(コア1(CPU1),コア3(CPU3),コア4(CPU4))も、様々なデバイスからの割り込みが許容される。
The core 2 (CPU 2), which is a real-time core isolated by the strict shielding process shown in FIG. 4 described above, is prohibited from interrupting from other devices, but is isolated by the gentle shielding process shown in FIG. The core 2 (CPU 2), which is a real-time core, is allowed to interrupt from other devices.
Other cores (core 1 (CPU 1), core 3 (CPU 3), core 4 (CPU 4)) other than core 2 (CPU 2) are allowed to interrupt from various devices.
 図5に示す緩やかなシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)は、リアルタイム処理のリアルタイム性、すなわち規定時間までの処理完了を保証するため、以下の設定のシールド処理が行われる。
 (1)リアルタイムコアには、リアルタイムタスクを割り当てる。
 (2)リアルタイムコアには、非リアルタイムタスクも割り当てる。
 (3)リアルタイムコアで実行中のリアルタイムタスクの規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理に設定された場合は、その非リアルタイムタスク(non-RT)を他のコアに移動(マイグレーション)する。
The core 2 (CPU 2), which is a real-time core isolated by the gentle shield process shown in FIG. 5, performs a shield process with the following settings in order to guarantee the real-time property of the real-time process, that is, the completion of the process up to a specified time. .
(1) A real-time task is assigned to a real-time core.
(2) A non-real time task is also assigned to the real time core.
(3) Non-real-time tasks (non-real-time processing) that are running in the real-time core (non-real-time inhibition processing) that may interfere with processing completion (real-time performance) of the real-time task that is running in the real-time core. If it is set to the execution schedule process of (RT), the non-real-time task (non-RT) is moved (migrated) to another core.
 上記(1),(2)、(3)の3つの処理を伴う緩やかなシールド処理により、リアルタイムコアであるコア2(CPU2)は、リアルタイムタスクを規定時間内に完了させることができる。すなわちリアルタイム性を確保したリアルタイムタスクの処理が可能となる。 The core 2 (CPU 2), which is a real-time core, can complete the real-time task within a specified time by the gentle shielding process involving the three processes (1), (2), and (3). That is, it is possible to process a real-time task that ensures real-time performance.
 このような緩やかなシールド処理を行うことで、例えばコア数が2つや3つの少ないコア数の設定において、非リアルタイム処理の処理量が増加した場合でも、リアルタイムコアと非リアルタイムコアの両者を利用した非リアルタイム処理を実行することが可能となり、非リアルタイム処理完了までの時間を短縮することができ、装置全体の処理効率を向上させることが可能となる。 By performing such a gentle shield process, for example, when the number of cores is set to 2 or 3 and the number of non-real-time processing increases, both the real-time core and the non-real-time core are used. Non-real-time processing can be executed, the time until completion of non-real-time processing can be shortened, and the processing efficiency of the entire apparatus can be improved.
  [5.各コアにおける実行タスクの制御を行うタスクスケジューラについて]
 図5を参照して説明したように、本開示の装置では、リアルタイムコアに対して緩やかなシールド処理を実行し、リアルタイムコアに対して、リアルタイムタスクを割り当てるとともに、非リアルタイムタスクも割り当てる。
[5. About the task scheduler that controls the execution tasks in each core]
As described with reference to FIG. 5, in the apparatus of the present disclosure, a gentle shield process is executed for a real-time core, and a real-time task and a non-real-time task are also assigned to the real-time core.
 ただし、リアルタイムコアで実行中のリアルタイムタスクの規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定された場合、その非リアルタイムタスク(non-RT)を他のコアに移動(マイグレーション)する処理を行う。
 これらの処理を行うことで、装置全体の処理効率を向上させることを可能としている。
However, non-real-time tasks (non-RT) running in the real-time core may not be processed (real-time inhibition processing) that may prevent processing completion (real-time performance) of the real-time task running in the real-time core. ) Is set as an execution schedule process, the non-real-time task (non-RT) is moved (migrated) to another core.
By performing these processes, it is possible to improve the processing efficiency of the entire apparatus.
 複数のコアに対するタスクの割り当てや、タスクの移動(マイグレーション)は、OSの一部機能であるカーネルにおいて実行される。
 図6を参照して、カーネルの実行するコアに対するタスクの割り当てや、タスクの移動(マイグレーション)処理について説明する。
Task assignment to a plurality of cores and task migration (migration) are executed in a kernel which is a partial function of the OS.
With reference to FIG. 6, task assignment to a core executed by the kernel and task migration (migration) processing will be described.
 図6には、本開示の情報処理装置を構成する複数のコア(CPU)によって構成されるマルチコア20と、複数のデバイスによって構成されるデバイス群10を示している。
 デバイス群10には、様々なデバイスが含まれる。具体的には、マルチコア20内のいずれかのコアによる処理結果を必要とするデバイスであり、例えばGPU(グラフィックプロセッシングユニット)、ハードディスク(HD)、USB等、様々なデバイスによって構成される。
FIG. 6 illustrates a multi-core 20 configured by a plurality of cores (CPUs) configuring an information processing apparatus of the present disclosure and a device group 10 configured by a plurality of devices.
The device group 10 includes various devices. Specifically, it is a device that requires a processing result by any one of the cores in the multi-core 20, and is configured by various devices such as a GPU (graphic processing unit), a hard disk (HD), and a USB.
 マルチコア20内には、ハードウェアとして2以上のコア(CPU)が含まれる。
 図6には、マルチコア20内のハードウェアであるコア(CPU)の実行するソフトウェア構成(ソフトウェアスタック)を示している。
The multi-core 20 includes two or more cores (CPUs) as hardware.
FIG. 6 shows a software configuration (software stack) executed by a core (CPU) that is hardware in the multi-core 20.
 図には、ベーススタックとしてのカーネル(OS)30と、その上位スタックとしての、複数のタスクを示している。
 複数のタスクには、処理完了期限や処理開始時点が規定されたリアルタイムタスク(RT)52と、それ以外の非リアルタイムタスク(non-RT)51,53,54等、多数のタスクが含まれる。
 これらは、マルチコア20を構成する複数のコアの各々において実行される。
In the figure, a kernel (OS) 30 as a base stack and a plurality of tasks as its upper stack are shown.
The plurality of tasks include a number of tasks such as a real-time task (RT) 52 in which a process completion deadline and a processing start time are defined, and other non-real-time tasks (non-RT) 51, 53, and 54.
These are executed in each of a plurality of cores constituting the multi-core 20.
 また、マルチコア20を構成する各コアにおいては、カーネルスレッドが実行される。先に図3を参照して説明したカーネルスレッドである。
 カーネルスレッドは、OS(オペレーティングシステム)の中核となるソフトウェアであるカーネル対応の処理であり、各コアにおけるタスク実行に必要となるリソースやメモリの管理、さらにタスク切り替え等の処理が含まれる。
A kernel thread is executed in each core constituting the multi-core 20. This is the kernel thread described above with reference to FIG.
The kernel thread is a process corresponding to the kernel that is the core software of the OS (operating system), and includes processing such as management of resources and memory necessary for task execution in each core, and task switching.
 図6に示すように、カーネルは、タスクスケジューラ31の機能も有する。
 タスクスケジューラ31は、マルチコア20を構成する各コアに対するタスクの割り当てや、各コア間のタスク移動処理等のタスクスケジューリング処理を実行する。
 これらのタスクスケジューリング処理も各コアにおいて実行されるカーネルスレッドの一部である。
As shown in FIG. 6, the kernel also has a function of a task scheduler 31.
The task scheduler 31 executes task scheduling processing such as task assignment to each core constituting the multi-core 20 and task movement processing between each core.
These task scheduling processes are also part of the kernel thread executed in each core.
 図6に示すカーネル(OS)30のタスクスケジューラ31は、マルチコア20を構成する各コアに対するタスクの割り当てと、各コア間のタスク移動等の処理を実行する。 The task scheduler 31 of the kernel (OS) 30 shown in FIG. 6 executes processing such as task assignment to each core constituting the multi-core 20 and task movement between the cores.
 タスクスケジューラ31は、先に図5を参照して説明したタスク移動処理(マイグレーション)も実行する。
 すなわち、リアルタイムコアで実行中のリアルタイムタスクの規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定された場合、その非リアルタイムタスク(non-RT)を他のコアに移動(マイグレーション)する処理を行う。
The task scheduler 31 also executes the task movement process (migration) described above with reference to FIG.
In other words, processing (real-time inhibition processing) that may interfere with processing completion (real-time performance) of a real-time task being executed in the real-time core is prevented from being processed in the real-time core (non-RT ) Is set as an execution schedule process, the non-real-time task (non-RT) is moved (migrated) to another core.
 タスクスケジューラ31の実行する処理のシーケンスについて、図7に示すフローチャートを参照して説明する。 The sequence of processing executed by the task scheduler 31 will be described with reference to the flowchart shown in FIG.
 図7に示すフローの各ステップの処理について説明する。
  (ステップS101)
 タスクスケジューラ31は、まず、ステップS101において、通常時のタスクスケジューリング処理を実行する。
 具体的には、リアルタイムタスクをリアルタイムコアに割り当て、非リアルタイムタスクを、リアルタイムコア、非リアルタイムコアを含む全てのコアの空き時間等に応じて割り当てるタスクスケジューリングを実行する。
Processing of each step in the flow shown in FIG. 7 will be described.
(Step S101)
The task scheduler 31 first executes a normal task scheduling process in step S101.
Specifically, task scheduling is executed in which real-time tasks are assigned to real-time cores, and non-real-time tasks are assigned according to free times of all cores including real-time cores and non-real-time cores.
  (ステップS102)
 次に、タスクスケジューラ31は、ステップS102において、リアルタイムコアで実行中のリアルタイムタスクのリアルタイム性(規定時間までの処理完了確実性)の確保に影響する処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定されたか否かを判定する。
(Step S102)
Next, in step S102, the task scheduler 31 performs processing (real-time inhibition processing) that affects the real-time property of the real-time task being executed in the real-time core (the processing completion certainty up to the specified time) by the real-time core. It is determined whether or not the non-real-time task (non-RT) being executed is set as a scheduled execution process.
 タスクスケジューラ31は、全てのコアで実行中の処理を監視し、さらに、全てのデバイスからの処理要求、割り込み処理の要求等、すべての処理のスケジュールを監視し、管理している。 The task scheduler 31 monitors the processes being executed in all the cores, and further monitors and manages the schedules of all processes such as process requests from all devices and interrupt process requests.
 タスクスケジューラ31は、この処理監視処理の一部の処理として、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として新たにスケジューリングされた処理が、
 「リアルタイムコアで実行中のリアルタイム処理のリアルタイム性(規定時間までの処理完了確実性)の確保に影響する処理(リアルタイム性阻害処理)」
 であるか否かを判定する処理を実行する。
As part of the process monitoring process, the task scheduler 31 includes a process newly scheduled as an execution scheduled process of a non-real-time task (non-RT) being executed in the real-time core.
“Processing that affects the real-time performance of the real-time processing being executed in the real-time core (process completion certainty up to the specified time) (real-time inhibition processing)”
The process which determines whether it is is performed is performed.
 「リアルタイムコアで実行中のリアルタイム処理のリアルタイム性(規定時間までの処理完了確実性)の確保に影響する処理(リアルタイム性阻害処理)」
 とは、例えば、リアルタイムコアで実行中のリアルタイム処理の中断を発生させる処理等である。
“Processing that affects the real-time performance of the real-time processing being executed in the real-time core (process completion certainty up to the specified time) (real-time inhibition processing)”
For example, a process that causes an interruption of a real-time process being executed in the real-time core or the like.
 この「リアルタイムコアで実行中のリアルタイム処理のリアルタイム性(規定時間までの処理完了確実性)の確保に影響する処理(リアルタイム性阻害処理)」
 の具体例について、図8を参照して説明する。
This “Process that affects the real-time performance of the real-time processing being executed in the real-time core (the certainty of processing completion up to the specified time) (real-time inhibition processing)”
A specific example will be described with reference to FIG.
 図8には、「リアルタイムコアで実行中のリアルタイム処理のリアルタイム性(規定時間までの処理完了確実性)の確保に影響する処理(リアルタイム性阻害処理)」
 の例として、以下の3つの処理を示している。
In FIG. 8, “Processing that affects the real-time performance of the real-time processing being executed in the real-time core (process completion certainty up to the specified time) (real-time inhibition processing)”
As an example, the following three processes are shown.
 (1)システムコール
 (2)割り込み禁止処理
 (3)プリエンプションの禁止処理
(1) System call (2) Interrupt inhibition processing (3) Preemption inhibition processing
 (1)システムコールは、OS(カーネル)によって発行される命令、関数(例えばタスク対する機能提供や利用のための命令、関数)の出力処理である。
 (2)割り込み禁止処理は、実行中の処理を中断して強制的に実行する割り込みの禁止処理である。
 (3)プリエンプションの禁止処理は、実行中のタスクを一時的に中断するプリエンプションの禁止処理である
(1) The system call is an output process of instructions and functions issued by the OS (kernel) (for example, instructions and functions for providing and using functions for tasks).
(2) The interrupt prohibition process is an interrupt prohibition process forcibly executed by interrupting a process being executed.
(3) The preemption prohibition process is a preemption prohibition process for temporarily interrupting a task being executed.
 これら図8に示す(1)~(3)の処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定されると、リアルタイムコアにおいて実行中のリアルタイムタスクの中断が発生する可能性がある。 When the processes (1) to (3) shown in FIG. 8 (real-time inhibition process) are set as scheduled execution processes for a non-real-time task (non-RT) being executed in the real-time core, they are executed in the real-time core. There is a possibility of interruption of the real-time task during.
 タスクスケジューラ31は、ステップS102において、例えば、図8に示す(1)~(3)の処理のようなリアルタイム性阻害処理が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定されたか否かを判定する。 In step S102, the task scheduler 31 executes a non-real-time task (non-RT) in which a real-time inhibition process such as the processes (1) to (3) shown in FIG. It is determined whether or not the processing is set.
 ステップS102の判定がYesの場合、すなわち、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理としてリアルタイム性阻害処理が設定されたと判定した場合は、ステップS103に進む。
 それ以外の場合は、ステップS101に戻り、通常のタスクスケジューリング処理を継続する。
If the determination in step S102 is Yes, that is, if it is determined that the real-time inhibition process is set as the execution scheduled process for the non-real-time task (non-RT) being executed in the real-time core, the process proceeds to step S103.
Otherwise, the process returns to step S101, and normal task scheduling processing is continued.
  (ステップS103)
 ステップS102の判定がYesの場合、すなわち、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理としてリアルタイム性阻害処理が設定されたと判定した場合は、ステップS103に進む。
 タスクスケジューラ31は、ステップS103において、リアルタイム性阻害処理を実行予定処理として設定した非リアルタイムタスク(non-RT)を他のコアに移動(マイグレーション)する処理を行う。
(Step S103)
If the determination in step S102 is Yes, that is, if it is determined that the real-time inhibition process is set as the execution scheduled process for the non-real-time task (non-RT) being executed in the real-time core, the process proceeds to step S103.
In step S103, the task scheduler 31 performs processing for moving (migrating) the non-real-time task (non-RT) set as the execution scheduled processing to the real-time inhibition processing to another core.
 このタスク移動処理(マイグレーション)により、リアルタイムタスクを実行しているリアルタイムコアは、リアルタイム性阻害処理を実行予定の非リアルタイムタスクを実行する必要がなくなり、リアルタイムタスクの不測の中断を発生させることなく、予定された規定時間までにリアルタイムタスクを終了させることができる。すなわちリアルタイム性を確保したリアルタイムタスクを実行することができる。 By this task movement process (migration), the real-time core that is executing the real-time task does not need to execute the non-real-time task that is scheduled to execute the real-time inhibition process, without causing an unexpected interruption of the real-time task, Real-time tasks can be completed by the scheduled time. That is, a real-time task that secures real-time performance can be executed.
  [6.本開示の処理を適用した具体的なシステムの構成と処理例について]
 次に、本開示の処理を適用した具体的なシステムの構成と処理例について説明する。
 以下において説明する実施例は、4K画像を撮影する内視鏡システムである。
 4K画像は例えば3840×2160画素の高密度画素を有する高画質画像である。
 内視鏡システムは、例えば4K画像1秒間にを120フレーム撮影し、モニタに表示する処理を実行する処理を行う。
[6. Specific system configuration and processing example to which the processing of the present disclosure is applied]
Next, a specific system configuration and processing example to which the processing of the present disclosure is applied will be described.
The embodiment described below is an endoscope system that captures 4K images.
The 4K image is a high-quality image having high density pixels of 3840 × 2160 pixels, for example.
For example, the endoscope system captures 120 frames per second of a 4K image and performs a process of executing a process of displaying the frame on a monitor.
 すなわち、内視鏡によって撮影された画像の処理を行う画像処理装置は、120f/sの画像を継続して入力し、モニタに出力するための画像を生成する処理を継続して実行しなければならない。 That is, an image processing apparatus that processes an image photographed by an endoscope must continuously input a 120 f / s image and continuously generate an image for output to a monitor. Don't be.
 図9に内視鏡システム100の構成例を示す。
 内視鏡システム100は、カメラ装置110、画像処理装置120、モニタ140を有する。
 カメラ110は、4K画像を120f/sのフレームレートで撮影して、撮影画像を画像処理装置120に入力する。
 画像処理装置120は、カメラ110から入力する120f/sの画像に対する画像処理、すなわち、1秒間に120枚の撮影画像各々に対する処理を実行して、モニタ140に出力するための出力画像を生成する。
 画像処理装置120の生成した出力画像は、モニタ140に出力される。
 例えば医師が、モニタ140の出力画像を見ながら適切な処置を行う。
FIG. 9 shows a configuration example of the endoscope system 100.
The endoscope system 100 includes a camera device 110, an image processing device 120, and a monitor 140.
The camera 110 captures a 4K image at a frame rate of 120 f / s and inputs the captured image to the image processing apparatus 120.
The image processing apparatus 120 performs image processing on a 120 f / s image input from the camera 110, that is, processing on each of 120 captured images per second, and generates an output image to be output to the monitor 140. .
The output image generated by the image processing apparatus 120 is output to the monitor 140.
For example, a doctor performs an appropriate treatment while viewing the output image of the monitor 140.
 このモニタ140に出力される画像は、リアルタイムの画像であることが必要であり、大きな時間遅れが発生することは許容されない。
 従って、画像処理装置120は、カメラ110からフレームレート=120f/sの画像を入力して、各フレームの画像処理を時間遅れなく実行して、1秒間に120フレームの出力画像を生成する必要がある。
 この画像生成処理はリアルタイムタスクである。
The image output to the monitor 140 needs to be a real-time image, and a large time delay is not allowed.
Therefore, the image processing apparatus 120 needs to input an image with a frame rate of 120 f / s from the camera 110, perform image processing for each frame without time delay, and generate an output image of 120 frames per second. is there.
This image generation process is a real-time task.
 図9に示すように、画像処理装置120は、複数のコア(CPU)を有するマルチコア130と、複数のデバイスからなるデバイス群140を有する。 As shown in FIG. 9, the image processing apparatus 120 includes a multi-core 130 having a plurality of cores (CPUs) and a device group 140 composed of a plurality of devices.
 マルチコア130は、2つのコア、コア1(CPU1)131と、コア2(CPU2)132を有する。
 デバイス群140は複数のデバイスA(GPU)141,デバイスB(カメラ)142,デバイスC(USB)143・・・によって構成される。これらデバイスは、コアによる処理結果を必要とするデバイスであり、例えばGPU(グラフィックプロセッシングユニット)、カメラ、USB等、様々なデバイスによって構成される。
The multi-core 130 has two cores, a core 1 (CPU 1) 131 and a core 2 (CPU 2) 132.
The device group 140 includes a plurality of devices A (GPU) 141, device B (camera) 142, device C (USB) 143,. These devices are devices that require a processing result by the core, and are constituted by various devices such as a GPU (graphic processing unit), a camera, and a USB.
 カメラ110からフレームレート=120f/sの画像を入力して、各フレームの画像処理を実行して、1秒間に120フレームの出力画像を生成する場合、各フレーム単位で、以下の処理を行うことが必要となる。
 (処理1)マルチコア30内のリアルタイムコア、例えばコア1(CPU1)131による処理、
 (処理2)デバイス群の1つのデバイスであるデバイスA(GPU)141による処理、
 これらの処理1,2をシーケンシャルに実行することが必要となる。
When an image with a frame rate of 120 f / s is input from the camera 110 and image processing of each frame is executed to generate an output image of 120 frames per second, the following processing is performed for each frame. Is required.
(Process 1) Processing by a real-time core in the multi-core 30, for example, the core 1 (CPU 1) 131,
(Process 2) Process by device A (GPU) 141 which is one device of the device group,
It is necessary to execute these processes 1 and 2 sequentially.
 これら一連の処理は、カメラ撮影画像を即時にモニタ出力するために時間遅れなく実行することが必要となる。
 リアルタイムコアであるコア1(CPU1)131は、例えばデバイスA(GPU)141における画像処理プロセスに必要となる画像処理パラメータの生成を実行する。コア1(CPU1)131は。生成したパラメータをデバイスA(GPU)141に提供する。デバイスA(GPU)141はコア1(CPU1)の生成パラメータを利用してモニタ出力用の画像を生成する。
These series of processes need to be executed without time delay in order to immediately output the camera-captured image to the monitor.
The core 1 (CPU 1) 131 that is a real-time core executes generation of image processing parameters necessary for an image processing process in the device A (GPU) 141, for example. The core 1 (CPU 1) 131 is. The generated parameter is provided to the device A (GPU) 141. The device A (GPU) 141 generates an image for monitor output using the generation parameters of the core 1 (CPU 1).
 これらの処理は、カメラ撮影画像を即時にモニタ出力するために時間遅れなく実行することが必要であり、コア1(CPU1)131において実行する画像パラメータ生成処理はリアルタイムタスクとして実行されなければならない。 These processes need to be executed without time delay in order to immediately output the camera-captured image to the monitor, and the image parameter generation process executed in the core 1 (CPU 1) 131 must be executed as a real-time task.
 図10を参照して、リアルタイムコアであるコア1(CPU1)131と、デバイスA(GPU)141の処理シーケンスについて説明する。
 図10の下部に処理シーケンスを示す。
 時間軸(t)に沿って左から右に時間が経過する。
 時間T1~T2はカメラからの入力画像の周期(V周期=1フレーム間隔)である。
 本例では入力画像は120f/sのフレームレートであり、
 1/120=8.3msであるので、
 V周期=T1~T2=8.3msである。
The processing sequence of the core 1 (CPU 1) 131 and the device A (GPU) 141, which are real-time cores, will be described with reference to FIG.
The processing sequence is shown at the bottom of FIG.
Time elapses from left to right along the time axis (t).
Times T1 and T2 are the period of the input image from the camera (V period = 1 frame interval).
In this example, the input image has a frame rate of 120 f / s,
Since 1/120 = 8.3 ms,
V cycle = T1 to T2 = 8.3 ms.
 リアルタイムコアであるコア1(CPU1)131と、デバイスA(GPU)141は、8.3ms間隔で、繰り返し、1フレーム単位の画像処理を行う必要がある。 The core 1 (CPU 1) 131 and the device A (GPU) 141, which are real-time cores, need to repeatedly perform image processing in units of one frame at intervals of 8.3 ms.
 図10に示すシーケンス図は、1つのフレーム画像の処理シーケンスを示している。
 まず、時間T0後の時間t11において、リアルタイムコアであるコア1(CPU1)131に対して、デバイスB(カメラ)142から、画像処理要求に相当する画像入力割り込みが入力される。
 なお、画像入力割り込みをリアルタイムコアであるコア1(CPU1)131に入力する制御はカーネルのタスクスケジューラが実行する。
The sequence diagram shown in FIG. 10 shows the processing sequence of one frame image.
First, at time t11 after time T0, an image input interrupt corresponding to an image processing request is input from the device B (camera) 142 to the core 1 (CPU 1) 131 which is a real-time core.
Note that control for inputting an image input interrupt to the core 1 (CPU 1) 131, which is a real-time core, is executed by a kernel task scheduler.
 リアルタイムコアであるコア1(CPU1)131は、この割り込み入力に応じて、所定の遅延時間後の時間t12から、実際の処理、具体的には、GPUにおける画像処理に利用される画像処理パラメータ生成処理を開始する。
 この処理はリアルタイムタスクであり、処理完了までの時間が規定される。
In response to this interrupt input, the core 1 (CPU 1) 131, which is a real-time core, generates image processing parameters used for actual processing, specifically, image processing in the GPU, from time t12 after a predetermined delay time. Start processing.
This process is a real-time task, and the time until the process is completed is defined.
 リアルタイムコアであるコア1(CPU1)131は、時間t13において、画像処理パラメータ生成処理を完了し、生成した画像処理パラメータをデバイスA(GPU)141に出力する。
 デバイスA(GPU)141は、その後、時間T2までの間に出力画像を生成してモニタ140に出力する。
The core 1 (CPU 1) 131, which is a real-time core, completes the image processing parameter generation process at time t13 and outputs the generated image processing parameter to the device A (GPU) 141.
Thereafter, the device A (GPU) 141 generates an output image and outputs it to the monitor 140 until time T2.
 従来の厳格なシールド処理を実行した場合、リアルタイムコアであるコア1(CPU1)131は、リアルタイムタスクのみの実行が許容される設定であり、時間t13以後、時間T2までの時間、タスクを実行せず、次のフレームの処理まで待機せざる得なかった。 When the conventional strict shielding process is executed, the core 1 (CPU 1) 131, which is a real-time core, is set to be allowed to execute only real-time tasks, and the task is executed for a time from time t13 to time T2. Therefore, it was necessary to wait until the next frame was processed.
 しかし、本開示の緩やかなシールド処理を実行する構成では、リアルタイムコアであるコア1(CPU1)131は、リアルタイムタスクのみならず、非リアルタイムタスクの実行も許容される。
 従って、時間t13以後、時間T2までの時間、非リアルタイムタスクの処理を実行することが可能となる。
However, in the configuration of executing the gentle shielding process of the present disclosure, the core 1 (CPU 1) 131 that is a real-time core is allowed to execute not only a real-time task but also a non-real-time task.
Therefore, after the time t13, it is possible to execute the non-real-time task processing for the time up to the time T2.
 図9に示すように2つのコアを有する構成では、2つのコアを利用した非リアルタイムタスクの並列処理が可能となり、1つのコアにのみ非リアルタイムタスクを実行させる構成に比較すると、処理効率を飛躍的に増大させることが可能となる。 As shown in FIG. 9, the configuration having two cores enables parallel processing of non-real-time tasks using two cores, and the processing efficiency jumps compared to a configuration in which only one core executes non-real-time tasks. Can be increased.
 なお、リアルタイムコアであるコア1(CPU1)131は、時間t12~t13の期間においても、画像処理パラメータの生成処理であるリアルタイムタスクに併せて時分割で非リアルタイムタスクを実行することも可能である。 Note that the core 1 (CPU 1) 131, which is a real-time core, can also execute a non-real-time task in a time-sharing manner in addition to the real-time task that is the image processing parameter generation process even during the period of time t12 to t13. .
 ただし、この時に実行している非リアルタイムタスクに、リアルタイム性阻害処理が発生した場合、すなわち、リアルタイムコアで実行中のリアルタイムタスク(RT)の規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が発生した場合は、その非リアルタイムタスク(non-RT)は他のコアに移動(マイグレーション)される。 However, if real-time obstruction processing occurs in the non-real-time task that is being executed at this time, that is, processing completion (real-time performance) up to the specified time of the real-time task (RT) being executed in the real-time core may be hindered. When there is a process that has a characteristic (real-time inhibition process), the non-real-time task (non-RT) is moved (migrated) to another core.
 これらの処理を行うことで、リアルタイムコアにおいて実行されるリアルタイムタスクのリアルタイム性を確保した処理を確実に実行させることが可能となる。 By performing these processes, it is possible to reliably execute a process that ensures the real-time property of the real-time task executed in the real-time core.
  [7.情報処理装置の構成例について]
 次に、図11を参照して上述した実施例に従った処理を実行する情報処理装置のハードウェア構成例について説明する。
 例えば図9、図10を参照して説明した画像処理装置120も、図11に示す情報処理装置300のハードウェア構成を有する。
[7. Configuration example of information processing apparatus]
Next, a hardware configuration example of an information processing apparatus that executes processing according to the above-described embodiment will be described with reference to FIG.
For example, the image processing apparatus 120 described with reference to FIGS. 9 and 10 also has the hardware configuration of the information processing apparatus 300 shown in FIG.
 以下、図11に示す情報処理装置を構成する各構成要素について説明する。
 マルチコア301は、複数のコア(CPU:Central Processing Unit)によって構成される。マルチコア301は、図11に示すようにコア1(CPU1)351、コア2(CPU2)352、コア3(CPU3)353等、最小でも2つ以上のコアを有する。
Hereinafter, each component which comprises the information processing apparatus shown in FIG. 11 is demonstrated.
The multi-core 301 includes a plurality of cores (CPU: Central Processing Unit). As shown in FIG. 11, the multi-core 301 has at least two cores such as a core 1 (CPU 1) 351, a core 2 (CPU 2) 352, a core 3 (CPU 3) 353, and the like.
 これらの複数のコア(CPU)では、例えば、ROM(Read Only Memory)303、または記憶部309に記憶されているプログラムに従った様々な処理が実行される。 In these plural cores (CPUs), for example, various processes according to programs stored in the ROM (Read Only Memory) 303 or the storage unit 309 are executed.
 なお、マルチコア301内のコアの少なくとも1つのコアが上述した実施例において説明した緩やかなシールド処理によって処理が制限されたリアルタイムコアに設定される。
 前述したように、本開示の構成では、リアルタイムタスクを実行するコアのシールド処理を緩やかなシールド処理として、リアルタイムコアにおいても状況に応じて非リアルタイムタスクの実行が許容される。
Note that at least one of the cores in the multi-core 301 is set as a real-time core whose processing is limited by the gentle shield processing described in the above-described embodiment.
As described above, in the configuration of the present disclosure, the shield process of the core that executes the real-time task is a gentle shield process, and the execution of the non-real-time task is allowed even in the real-time core depending on the situation.
 ただし、リアルタイムコアで実行中のリアルタイムタスクの規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理に設定された場合は、その非リアルタイムタスク(non-RT)を他のコアに移動(マイグレーション)するという処理が実行される。 However, non-real-time tasks (non-RT) running in the real-time core may not be processed (real-time inhibition processing) that may prevent processing completion (real-time performance) of the real-time task running in the real-time core. ) Is set to the scheduled execution process, a process of moving (migrating) the non-real-time task (non-RT) to another core is executed.
 リアルタイムコアに対して、上記条件のタスク移動(マイグレーション)を行う設定とした緩やかなシールド処理を行うことで、リアルタイムコアは、リアルタイムタスクを規定時間内に完了させることができる。すなわちリアルタイムタスクのリアルタイム性を確保した処理が可能となる。 The real-time core can complete the real-time task within the specified time by performing a gentle shield process that is set to perform task migration (migration) under the above conditions for the real-time core. In other words, processing that ensures real-time performance of the real-time task is possible.
 GPU(Graphic Processing Unit)302は、画像処理を実行する画像専用プロセッサである。前述したように、CPUの生成したパラメータを利用した画像処理等を行う。 A GPU (Graphic Processing Unit) 302 is an image-dedicated processor that executes image processing. As described above, image processing using a parameter generated by the CPU is performed.
 ROM(Read Only Memory)303は、マルチコア301やGPU302が実行するプログラムやパラメータ等の記憶領域として利用される。
 RAM(Random Access Memory)304は、マルチコア301やGPU302が実行する処理のワークエリア、パラメータ記憶領域、その他のデータの記録領域等として利用される。
 これら、マルチコア301、GPU302、ROM303、およびRAM304は、バス305により相互に接続されている。
A ROM (Read Only Memory) 303 is used as a storage area for programs and parameters executed by the multi-core 301 and the GPU 302.
A RAM (Random Access Memory) 304 is used as a work area for processing executed by the multi-core 301 and the GPU 302, a parameter storage area, a recording area for other data, and the like.
These multi-core 301, GPU 302, ROM 303, and RAM 304 are mutually connected by a bus 305.
 マルチコア301やGPU302等はバス305を介して入出力インタフェース306に接続され、入出力インタフェース306には、各種スイッチ、キーボード、タッチパネル、マウス、マイクロフォン、さらに、センサ、カメラ等のデータ取得部などよりなる入力部307、モニタ等のディスプレイ、スピーカなどよりなる出力部309が接続されている。 The multi-core 301 and the GPU 302 are connected to an input / output interface 306 via a bus 305. The input / output interface 306 includes various switches, a keyboard, a touch panel, a mouse, a microphone, and a data acquisition unit such as a sensor and a camera. An input unit 307, a display such as a monitor, and an output unit 309 including a speaker are connected.
 マルチコア301は、入力部307から入力される指令や状況データ等を入力し、各種の処理を実行し、処理結果を例えば出力部308に出力する。
 入出力インタフェース306に接続されている記憶部309は、例えばハードディスク等からなり、マルチコア301が実行するプログラムや各種のデータを記憶する。通信部310は、インターネットやローカルエリアネットワークなどのネットワークを介したデータ通信の送受信部として機能し、外部の装置と通信する。
The multi-core 301 receives commands, status data, and the like input from the input unit 307, executes various processes, and outputs the processing results to the output unit 308, for example.
The storage unit 309 connected to the input / output interface 306 includes, for example, a hard disk and stores programs executed by the multi-core 301 and various data. The communication unit 310 functions as a data transmission / reception unit via a network such as the Internet or a local area network, and communicates with an external device.
 入出力インタフェース306に接続されているドライブ311は、磁気ディスク、光ディスク、光磁気ディスク、あるいはメモリカード等の半導体メモリなどのリムーバブルメディア312を駆動し、データの記録あるいは読み取りを実行する。 The drive 311 connected to the input / output interface 306 drives a removable medium 312 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory such as a memory card, and executes data recording or reading.
  [8.本開示の構成のまとめ]
 以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
[8. Summary of composition of the present disclosure]
As described above, the embodiments of the present disclosure have been described in detail with reference to specific embodiments. However, it is obvious that those skilled in the art can make modifications and substitutions of the embodiments without departing from the gist of the present disclosure. In other words, the present invention has been disclosed in the form of exemplification, and should not be interpreted in a limited manner. In order to determine the gist of the present disclosure, the claims should be taken into consideration.
 なお、本明細書において開示した技術は、以下のような構成をとることができる。
 (1) データ処理を実行する複数のコアと、
 前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
 前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
 前記タスクスケジューラは、
 前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行し、
 予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行する情報処理装置。
The technology disclosed in this specification can take the following configurations.
(1) a plurality of cores for executing data processing;
A task scheduler for scheduling tasks executed in the plurality of cores;
The plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task,
The task scheduler
A task allocation process for causing the real-time core to execute not only a real-time task but also a non-real-time task;
An information processing apparatus that executes migration for moving a non-real-time task assigned to the real-time core to another core in response to occurrence of a predetermined event.
 (2) 前記タスクスケジューラは、
 前記リアルタイムコアで実行中のリアルタイムタスクの規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理であるリアルタイム性阻害処理が、前記リアルタイムコアで実行中の非リアルタイムタスクの実行予定処理として設定された場合、該非リアルタイムタスクを、前記リアルタイムコアから他のコアに移動するマイグレーションを実行する(1)に記載の情報処理装置。
(2) The task scheduler
Real-time inhibition processing, which is a process that may prevent processing completion (real-time performance) of a real-time task being executed in the real-time core from being executed, is scheduled to be executed for a non-real-time task being executed in the real-time core. The information processing apparatus according to (1), wherein migration is performed to move the non-real-time task from the real-time core to another core.
 (3) 前記リアルタイム性阻害処理は、
 システムコール、または割り込み禁止処理、またはプリエンプション禁止処理、またはCPU例外処理、またはキャッシュロックのいずれかである(2)に記載の情報処理装置。
(3) The real-time inhibition process is:
The information processing apparatus according to (2), wherein the information processing apparatus is one of a system call, an interrupt prohibition process, a preemption prohibition process, a CPU exception process, or a cache lock.
 (4) 前記タスクスケジューラは、
 リアルタイムタスクを前記リアルタイムコアのみに割り当てて、前記リアルタイムコアにおいて実行させ、
 非リアルタイムタスクを前記非リアルタイムコアとリアルタイムコアに割り当てて、複数コアで実行させるタスク割り当て処理を実行する(1)~(3)いずれかに記載の情報処理装置。
(4) The task scheduler
Assign a real-time task only to the real-time core and execute it in the real-time core,
The information processing apparatus according to any one of (1) to (3), wherein a non-real-time task is assigned to the non-real-time core and the real-time core, and task assignment processing is executed by a plurality of cores.
 (5) 前記複数のコアの各々は、プロセッサである(1)~(4)いずれかに記載の情報処理装置。 (5) The information processing apparatus according to any one of (1) to (4), wherein each of the plurality of cores is a processor.
 (6) 前記情報処理装置は、
 カメラ撮影画像を入力して表示部に表示する出力画像を生成する画像処理を実行する構成であり、
 前記リアルタイムコアは、
 前記画像処理を実行するGPU(Graphic Processing Unit)に提供するパラメータの生成を前記リアルタイムタスクとして実行する(1)~(5)いずれかに記載の画像処理装置。
(6) The information processing apparatus
It is a configuration that executes image processing for inputting an image captured by a camera and generating an output image to be displayed on the display unit,
The real-time core is
The image processing device according to any one of (1) to (5), wherein generation of a parameter provided to a GPU (Graphic Processing Unit) that executes the image processing is executed as the real-time task.
 (7) 前記リアルタイムコアは、
 1つの画像フレーム対応のパラメータ生成処理をリアルタイムタスクとして実行し、その後の空き時間に非リアルタイムタスクを実行する(6)に記載の情報処理装置。
(7) The real-time core is
The information processing apparatus according to (6), wherein the parameter generation processing corresponding to one image frame is executed as a real-time task, and the non-real-time task is executed in a free time thereafter.
 (8) 情報処理装置において実行する情報処理方法であり、
 前記情報処理装置は、
 データ処理を実行する複数のコアと、
 前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
 前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
 前記タスクスケジューラが、
 前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行し、
 予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行する情報処理方法。
(8) An information processing method executed in the information processing apparatus,
The information processing apparatus includes:
Multiple cores that perform data processing;
A task scheduler for scheduling tasks executed in the plurality of cores;
The plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task,
The task scheduler is
A task allocation process for causing the real-time core to execute not only a real-time task but also a non-real-time task;
An information processing method for executing migration for moving a non-real-time task assigned to the real-time core to another core in response to occurrence of a predetermined event.
 (9) 情報処理装置において情報処理を実行させるプログラムであり、
 前記情報処理装置は、
 データ処理を実行する複数のコアと、
 前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
 前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
 前記プログラムは、前記タスクスケジューラに、
 前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行させ、
 予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行させるプログラム。
(9) A program for executing information processing in an information processing device,
The information processing apparatus includes:
Multiple cores that perform data processing;
A task scheduler for scheduling tasks executed in the plurality of cores;
The plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task,
The program is stored in the task scheduler.
Causing the real-time core to execute a task assignment process for executing not only a real-time task but also a non-real-time task;
A program for executing migration to move a non-real-time task assigned to the real-time core to another core in response to occurrence of a predetermined event.
 また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。 Further, the series of processes described in the specification can be executed by hardware, software, or a combined configuration of both. When executing processing by software, the program recording the processing sequence is installed in a memory in a computer incorporated in dedicated hardware and executed, or the program is executed on a general-purpose computer capable of executing various processing. It can be installed and run. For example, the program can be recorded in advance on a recording medium. In addition to being installed on a computer from a recording medium, the program can be received via a network such as a LAN (Local Area Network) or the Internet and installed on a recording medium such as a built-in hard disk.
 なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。 In addition, the various processes described in the specification are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary. Further, in this specification, the system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.
 以上、説明したように、本開示の一実施例の構成によれば、リアルタイムコアにおいて非リアルタイムタスクを実行させて処理効率を向上させ、かつリアルタイムタスクのリアルタイム性を確保した構成が実現される。
 具体的には、例えば、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成された複数コアと、複数コアのタスクのスケジューリングを行うタスクスケジューラを有する。タスクスケジューラは、リアルタイムコアにリアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当てを実行し、予め規定した事象発生に応じて、リアルタイムコアに割り当てた非リアルタイムタスクを他コアに移動するマイグレーションを行う。
 本構成により、リアルタイムコアにおいて非リアルタイムタスクを実行させて処理効率を向上させ、かつリアルタイムタスクのリアルタイム性を確保した構成が実現される。
As described above, according to the configuration of an embodiment of the present disclosure, a configuration in which a non-real-time task is executed in a real-time core to improve the processing efficiency and the real-time property of the real-time task is ensured is realized.
Specifically, for example, it has a real-time core that executes a real-time task, a plurality of cores configured by a non-real-time core that executes a non-real-time task, and a task scheduler that schedules the tasks of the plurality of cores. The task scheduler executes task assignment that allows the real-time core to execute not only real-time tasks but also non-real-time tasks, and migrates non-real-time tasks assigned to real-time cores to other cores in response to the occurrence of a predefined event. Do.
With this configuration, a non-real-time task is executed in the real-time core to improve processing efficiency, and a configuration that ensures the real-time property of the real-time task is realized.
 10 デバイス群
 20 マルチコア
 30 カーネル(OS)
 31 タスクスケジューラ
 51,53,54, 非リアルタイムタスク
 52 リアルタイムタスク
 100 内視鏡システム
 110 カメラ装置
 120 画僧処理装置
 130 マルチコア
 131,132 コア(CPU)
 140 デバイス群
 141~143 デバイス
 301 マルチコア
 302 GPU
 303 ROM
 304 RAM
 305 バス
 306 入出力インタフェース
 307 入力部
 308 出力部
 309 記憶部
 310 通信部
 311 ドライブ
 312 リムーバブルメディア
 351~353 コア(CPU)
10 device group 20 multi-core 30 kernel (OS)
31 Task scheduler 51, 53, 54, Non-real time task 52 Real time task 100 Endoscope system 110 Camera device 120 Image processing device 130 Multi-core 131, 132 Core (CPU)
140 device group 141-143 device 301 multi-core 302 GPU
303 ROM
304 RAM
305 Bus 306 Input / output interface 307 Input unit 308 Output unit 309 Storage unit 310 Communication unit 311 Drive 312 Removable media 351 to 353 Core (CPU)

Claims (9)

  1.  データ処理を実行する複数のコアと、
     前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
     前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
     前記タスクスケジューラは、
     前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行し、
     予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行する情報処理装置。
    Multiple cores that perform data processing;
    A task scheduler for scheduling tasks executed in the plurality of cores;
    The plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task,
    The task scheduler
    A task allocation process for causing the real-time core to execute not only a real-time task but also a non-real-time task;
    An information processing apparatus that executes migration for moving a non-real-time task assigned to the real-time core to another core in response to occurrence of a predetermined event.
  2.  前記タスクスケジューラは、
     前記リアルタイムコアで実行中のリアルタイムタスクの規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理であるリアルタイム性阻害処理が、前記リアルタイムコアで実行中の非リアルタイムタスクの実行予定処理として設定された場合、該非リアルタイムタスクを、前記リアルタイムコアから他のコアに移動するマイグレーションを実行する請求項1に記載の情報処理装置。
    The task scheduler
    Real-time inhibition processing, which is a process that may prevent processing completion (real-time performance) of a real-time task being executed in the real-time core from being executed, is scheduled to be executed for a non-real-time task being executed in the real-time core. The information processing apparatus according to claim 1, wherein migration is performed to move the non-real-time task from the real-time core to another core.
  3.  前記リアルタイム性阻害処理は、
     システムコール、または割り込み禁止処理、またはプリエンプション禁止処理、またはCPU例外処理、またはキャッシュロックのいずれかである請求項2に記載の情報処理装置。
    The real-time inhibition process is:
    The information processing apparatus according to claim 2, wherein the information processing apparatus is one of a system call, an interrupt prohibition process, a preemption prohibition process, a CPU exception process, or a cache lock.
  4.  前記タスクスケジューラは、
     リアルタイムタスクを前記リアルタイムコアのみに割り当てて、前記リアルタイムコアにおいて実行させ、
     非リアルタイムタスクを前記非リアルタイムコアとリアルタイムコアに割り当てて、複数コアで実行させるタスク割り当て処理を実行する請求項1に記載の情報処理装置。
    The task scheduler
    Assign a real-time task only to the real-time core and execute it in the real-time core,
    The information processing apparatus according to claim 1, wherein a non-real time task is assigned to the non-real time core and the real time core, and task assignment processing is executed in which the non real time task is executed by a plurality of cores.
  5.  前記複数のコアの各々は、プロセッサである請求項1に記載の情報処理装置。 2. The information processing apparatus according to claim 1, wherein each of the plurality of cores is a processor.
  6.  前記情報処理装置は、
     カメラ撮影画像を入力して表示部に表示する出力画像を生成する画像処理を実行する構成であり、
     前記リアルタイムコアは、
     前記画像処理を実行するGPU(Graphic Processing Unit)に提供するパラメータの生成を前記リアルタイムタスクとして実行する請求項1に記載の画像処理装置。
    The information processing apparatus includes:
    It is a configuration that executes image processing for inputting an image captured by a camera and generating an output image to be displayed on the display unit,
    The real-time core is
    The image processing apparatus according to claim 1, wherein generation of a parameter to be provided to a GPU (Graphic Processing Unit) that executes the image processing is executed as the real-time task.
  7.  前記リアルタイムコアは、
     1つの画像フレーム対応のパラメータ生成処理をリアルタイムタスクとして実行し、その後の空き時間に非リアルタイムタスクを実行する請求項6に記載の情報処理装置。
    The real-time core is
    The information processing apparatus according to claim 6, wherein the parameter generation processing corresponding to one image frame is executed as a real-time task, and the non-real-time task is executed in a free time thereafter.
  8.  情報処理装置において実行する情報処理方法であり、
     前記情報処理装置は、
     データ処理を実行する複数のコアと、
     前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
     前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
     前記タスクスケジューラが、
     前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行し、
     予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行する情報処理方法。
    An information processing method executed in an information processing apparatus,
    The information processing apparatus includes:
    Multiple cores that perform data processing;
    A task scheduler for scheduling tasks executed in the plurality of cores;
    The plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task,
    The task scheduler is
    A task allocation process for causing the real-time core to execute not only a real-time task but also a non-real-time task;
    An information processing method for executing migration for moving a non-real-time task assigned to the real-time core to another core in response to occurrence of a predetermined event.
  9.  情報処理装置において情報処理を実行させるプログラムであり、
     前記情報処理装置は、
     データ処理を実行する複数のコアと、
     前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
     前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
     前記プログラムは、前記タスクスケジューラに、
     前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行させ、
     予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行させるプログラム。
    A program for executing information processing in an information processing apparatus;
    The information processing apparatus includes:
    Multiple cores that perform data processing;
    A task scheduler for scheduling tasks executed in the plurality of cores;
    The plurality of cores includes a real-time core that executes a real-time task and a non-real-time core that executes a non-real-time task,
    The program is stored in the task scheduler.
    Causing the real-time core to execute a task assignment process for executing not only a real-time task but also a non-real-time task;
    A program for executing migration to move a non-real-time task assigned to the real-time core to another core in response to occurrence of a predetermined event.
PCT/JP2019/005042 2018-03-28 2019-02-13 Information processing device, information processing method, and program WO2019187719A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-061340 2018-03-28
JP2018061340 2018-03-28

Publications (1)

Publication Number Publication Date
WO2019187719A1 true WO2019187719A1 (en) 2019-10-03

Family

ID=68058992

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/005042 WO2019187719A1 (en) 2018-03-28 2019-02-13 Information processing device, information processing method, and program

Country Status (1)

Country Link
WO (1) WO2019187719A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115080280A (en) * 2022-08-16 2022-09-20 南方电网数字电网研究院有限公司 Multi-time scale data fusion edge computing platform control system and method
WO2023071643A1 (en) * 2021-10-29 2023-05-04 华为技术有限公司 Method and apparatus for processing task, electronic device, and medium
WO2024164701A1 (en) * 2023-02-10 2024-08-15 中兴通讯股份有限公司 Task scheduling method, many-core device and computer readable medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005157955A (en) * 2003-11-28 2005-06-16 Internatl Business Mach Corp <Ibm> Resource reservation system and method and storage medium recording program for implementing this method
JP2005190238A (en) * 2003-12-26 2005-07-14 Matsushita Electric Ind Co Ltd Real time control system
JP2013533524A (en) * 2010-08-11 2013-08-22 日本電気株式会社 Primary-backup based fault tolerant method for multiprocessor systems
US20130342713A1 (en) * 2012-03-20 2013-12-26 Xi'an Lianke Information Technology Co., Ltd. Cloud service based intelligent photographic method, device and mobile terminal
JP2014164635A (en) * 2013-02-27 2014-09-08 Nec Computertechno Ltd Resource management device, resource management method and program
JP2018045638A (en) * 2016-09-16 2018-03-22 株式会社東芝 Information processor, information processing method and program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005157955A (en) * 2003-11-28 2005-06-16 Internatl Business Mach Corp <Ibm> Resource reservation system and method and storage medium recording program for implementing this method
JP2005190238A (en) * 2003-12-26 2005-07-14 Matsushita Electric Ind Co Ltd Real time control system
JP2013533524A (en) * 2010-08-11 2013-08-22 日本電気株式会社 Primary-backup based fault tolerant method for multiprocessor systems
US20130342713A1 (en) * 2012-03-20 2013-12-26 Xi'an Lianke Information Technology Co., Ltd. Cloud service based intelligent photographic method, device and mobile terminal
JP2014164635A (en) * 2013-02-27 2014-09-08 Nec Computertechno Ltd Resource management device, resource management method and program
JP2018045638A (en) * 2016-09-16 2018-03-22 株式会社東芝 Information processor, information processing method and program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023071643A1 (en) * 2021-10-29 2023-05-04 华为技术有限公司 Method and apparatus for processing task, electronic device, and medium
CN115080280A (en) * 2022-08-16 2022-09-20 南方电网数字电网研究院有限公司 Multi-time scale data fusion edge computing platform control system and method
CN115080280B (en) * 2022-08-16 2022-12-27 南方电网数字电网研究院有限公司 Multi-time scale data fusion edge computing platform control system and method
WO2024164701A1 (en) * 2023-02-10 2024-08-15 中兴通讯股份有限公司 Task scheduling method, many-core device and computer readable medium

Similar Documents

Publication Publication Date Title
US11507420B2 (en) Systems and methods for scheduling tasks using sliding time windows
US8161491B2 (en) Soft real-time load balancer
US8793695B2 (en) Information processing device and information processing method
EP2885707B1 (en) Latency sensitive software interrupt and thread scheduling
CN106569891B (en) Method and device for scheduling and executing tasks in storage system
WO2019187719A1 (en) Information processing device, information processing method, and program
JP2009541848A (en) Method, system and apparatus for scheduling computer microjobs to run uninterrupted
CN108241527B (en) Task scheduling method and electronic equipment
JP6895235B2 (en) Systems and methods for allocating environmentally tuned slack
JP2021526257A (en) Multi-kernel wave surface scheduler
Elliott et al. Supporting real-time computer vision workloads using OpenVX on multicore+ GPU platforms
KR101392584B1 (en) Apparatus for dynamic data processing using resource monitoring and method thereof
JP6372262B2 (en) Printing apparatus and program
JP2010287046A (en) System, method and program for distributing resource
US20050132038A1 (en) Resource reservation system and resource reservation method and recording medium storing program for executing the method
JP5726006B2 (en) Task and resource scheduling apparatus and method, and control apparatus
JP5299869B2 (en) Computer micro job
US20050066093A1 (en) Real-time processor system and control method
EP2905703A1 (en) Parallel computer system, control method of parallel computer system, and computer-readable storage medium
CN109766168B (en) Task scheduling method and device, storage medium and computing equipment
JP4048638B2 (en) Scheduling apparatus and method, and recording medium
Souto et al. Overhead-aware schedulability evaluation of semi-partitioned real-time schedulers
JP2004234546A (en) Program running method and device
US20230305872A1 (en) Efficient central processing unit overcommit for virtual machines with symmetric multi-processing
US20240211309A1 (en) Multi-level scheduling for improved quality of service

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19777107

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19777107

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP