WO2019187719A1 - 情報処理装置、および情報処理方法、並びにプログラム - Google Patents

情報処理装置、および情報処理方法、並びにプログラム 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
English (en)
French (fr)
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/ja

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

リアルタイムコアにおいて非リアルタイムタスクを実行させて処理効率を向上させ、かつリアルタイムタスクのリアルタイム性を確保した構成を実現する。リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成された複数コアと、複数コアのタスクのスケジューリングを行うタスクスケジューラを有する。タスクスケジューラは、リアルタイムコアにリアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当てを実行し、予め規定した事象発生に応じて、リアルタイムコアに割り当てた非リアルタイムタスクを他コアに移動するマイグレーションを行う。

Description

情報処理装置、および情報処理方法、並びにプログラム
 本開示は、情報処理装置、および情報処理方法、並びにプログラムに関する。さらに詳細には、例えばマルチコアシステム等、複数のコア(プロセッサ)を利用して複数の処理を並列に実行可能とした装置において、リアルタイムタスクのリアルタイム性の確保を実現する情報処理装置、および情報処理方法、並びにプログラムに関する。
 多数のタスク(処理)の並列処理が要求されるシステムでは、各タスク(処理)を並列に実行させるため、複数コア(プロセッサ)による並列処理が可能なマルチコアシステム等、複数のプロセッサを搭載した情報処理装置が利用される。
 このような情報処理装置において実行されるタスクには、規定時間までの処理完了が必要とされるタスク、すなわち、リアルタイム性が要求されるリアルタイムタスク(リアルタイム処理)と、それ以外のタスク、すなわち特定の規定時間までの処理完了が要求されないノンリアルタイムタスク(ノンリアルタイム処理)が混在する。
 リアルタイムタスクの規定時間までの処理完了を実現するため、すなわちリアルタイム性を確保する技術として、情報処理装置が有する複数コアの一部のコアをリアルタイムタスク専用のコアに設定するシールディング技術がある。
 このシールディング技術は、専用コア(リアルタイムコア)にノンリアルタイム処理を実行させない設定とすることで、リアルタイムタスクの発生時に、確実に専用コアがリアルタイムタスクを実行できる設定としたものである。
 しかし、この構成は、リアルタイムタスクのみを実行する専用コアを設定することが必要であり、コア数が少ない場合には実現することが難しいという問題がある。
 リアルタイムタスク実行用の専用コアを設けずに特定のリアルタイムタスクを規定時間までに完了させるための技術を開示した従来技術として、例えば特許文献1(特開2005-157955号公報)がある。
 この特許文献1は、プロセッサが必要とするリアルタイムタスクの処理時間を計算して、リアルタイムタスクの規定完了時間までに余裕時間がある場合は、そのプロセッサに他の処理を実行させ、余裕がない場合は、リアルタイムタスクのみを実行させる構成としたものである。
 このような構成とすることで、コア(プセッサ)数に余裕がなくリアルタイム専用コアを設定することができない構成でもリアルタイムタスクのリアルタイム性を保証する構成を実現している。
 しかし、本構成は、リアルタイムタスクの処理時間の計算を行うことが必要であり、また処理時間計算のための割り込みの設定も必要となるなど、多くの付加的な処理が発生するという問題がある。また、予測できないタイミングで発生するリアルタイムタスクに対する対応は難しいという問題もある。
特開2005-157955号公報
 本開示は、例えば上記問題点に鑑みてなされたものであり、マルチコアシステム等、複数のコア(プロセッサ)を利用して複数処理を並列に実行可能とした装置において、一部のコアをリアルタイム処理のみを実行する専用コアに設定することなく、かつ各タスクの処理時間を予め計算するといった処理を行うことなくリアルタイムタスクのリアルタイム性確保を可能とした情報処理装置、および情報処理方法、並びにプログラムを提供することを目的とする。
 本開示の第1の側面は、
 データ処理を実行する複数のコアと、
 前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
 前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
 前記タスクスケジューラは、
 前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行し、
 予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行する情報処理装置にある。
 さらに、本開示の第2の側面は、
 情報処理装置において実行する情報処理方法であり、
 前記情報処理装置は、
 データ処理を実行する複数のコアと、
 前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
 前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
 前記タスクスケジューラが、
 前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行し、
 予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行する情報処理方法にある。
 さらに、本開示の第3の側面は、
 情報処理装置において情報処理を実行させるプログラムであり、
 前記情報処理装置は、
 データ処理を実行する複数のコアと、
 前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
 前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
 前記プログラムは、前記タスクスケジューラに、
 前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行させ、
 予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行させるプログラムにある。
 なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
 本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
 本開示の一実施例の構成によれば、リアルタイムコアにおいて非リアルタイムタスクを実行させて処理効率を向上させ、かつリアルタイムタスクのリアルタイム性を確保した構成が実現される。
 具体的には、例えば、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成された複数コアと、複数コアのタスクのスケジューリングを行うタスクスケジューラを有する。タスクスケジューラは、リアルタイムコアにリアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当てを実行し、予め規定した事象発生に応じて、リアルタイムコアに割り当てた非リアルタイムタスクを他コアに移動するマイグレーションを行う。
 本構成により、リアルタイムコアにおいて非リアルタイムタスクを実行させて処理効率を向上させ、かつリアルタイムタスクのリアルタイム性を確保した構成が実現される。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
リアルタイムタスク(リアルタイム処理)について説明する図である。 コア間のタスク移動処理(マイグレーション)について説明する図である。 リアルタイム処理を行うための専用コアを設定するシールド処理について説明する図である。 従来の厳格なシールド処理について説明する図である。 緩やかなシールド構成を行う本開示の構成について図である。 カーネルの実行するコアに対するタスクの割り当てや、タスクの移動(マイグレーション)処理について説明する図である。 タスクスケジューラの実行する処理シーケンスについて説明するフローチャートを示す図である。 リアルタイムコアで実行中のリアルタイム処理のリアルタイム性(規定時間までの処理完了確実性)の確保に影響する処理(リアルタイム性阻害処理)の具体例について説明する図である。 内視鏡システムの構成例を示す図である。 リアルタイムコアであるコア1(CPU1)131と、デバイスA(GPU)141の処理シーケンスについて説明する図である。 情報処理装置のハードウェア構成例について説明する図である。
 以下、図面を参照しながら本開示の情報処理装置、および情報処理方法、並びにプログラムの詳細について説明する。なお、説明は以下の項目に従って行なう。
 1.リアルタイムタスク(リアルタイム処理)について
 2.コア間のタスク移動処理(マイグレーション)について
 3.シールド処理によるリアルタイム処理の実行例について
 4.特定コアでリアルタイム処理を行うとともに装置全体の処理効率を向上させた構成について
 5.各コアにおける実行タスクの制御を行うタスクスケジューラについて
 6.本開示の処理を適用した具体的なシステムの構成と処理例について
 7.情報処理装置の構成例について
 8.本開示の構成のまとめ
  [1.リアルタイムタスク(リアルタイム処理)について]
 まず、図1を参照して、リアルタイムタスク(リアルタイム処理)について説明する。
 前述したように、複数の異なるタスク(処理)を並列に実行させるために複数のコア(プロセッサ)を並列動作可能としたマルチコアシステム等、複数のコア(プロセッサ)を有する情報処理装置が利用される。
 複数のコア(プロセッサ)を有する情報処理装置が実行する処理には、
 (a)規定時間までの処理完了が必要とされる処理、すなわち、リアルタイム性が要求されるリアルタイムタスク(リアルタイム処理)、
 (b)特定の規定時間までの処理完了が要求されないノンリアルタイムタスク(ノンリアルタイム処理)、
 これら、2種類のタスク(処理)が混在する。
 具体的には、例えば、ビデオカメラで、画像の撮影を行い、モニタ(表示部)に表示される撮影画像を見ながら作業を行う場合、カメラ撮影画像からモニタ(表示部)出力までの時間に遅延が発生してしまうと、作業が遅延してしまったり、表示が乱れる可能性がある。最悪、モニタの表画像を見ながらの作業は不可能になる。
 この場合の画像処理は、基本的にリアルタイム処理として実行することが必要となる。
 このような画像処理を実行する情報処理装置(画像処理装置)が、例えば、撮影画像のモニタ出力と、撮影画像のハードディスク等の記憶手段に記録する処理を並列に行う場合がある。
 記憶手段に対する記録画像は、多くの場合、リアルタイムで参照する必要がない。すなわち、画像記録処理は、多少の時間遅れが発生しても問題はない。このような処理は、ノンリアルタイムタスク(ノンリアルタイム処理)として実行することが許容される。
 複数のコア(プロセッサ)を並列動作可能としたマルチコアシステムにおいては、リアルタイム処理と、ノンリアルタイム処理が混在し、これら複数の異なる処理を複数のコアが各々、担当して処理を行うことになる。
 なお、リアルタイムタスク(リアルタイム処理)には、さらに、以下の2種類の処理がある。
 (a1)周期処理
 (a2)非周期処理
 (a1)周期処理は、予め定められた定期的に発生する処理である。上述したカメラの撮影画像をモニタ(表示部)に出力するための画像処理も周期処理である
 カメラの撮影画像をモニタに出力するための画像処理では、所定のフレームレートデ撮影される画像を周期的に処理することが必要であり、周期処理となる。
 例えば、カメラは、1秒間に60フレームの画像を撮影する60f/sや、1秒間に120フレームの画像を撮影する120f/sといった様々なフレームレートで画像を撮影する。
 コア(プロセッサ)は、これら規定のフレーム間隔の連続画像の各々に対して周期的な処理を行う必要がある。
 一方、(a2)非周期処理は、突発的なイベントが発生した際に予め規定された応答時間内にイベント対応の処理を実行するものである。
 例えば、動画撮影中にカメラや被写体が移動するなどして焦点距離が変化した場合に焦点調整が必要となる。焦点調整が予め規定された時間内に完了できないと、ぼやけた画像しか得られず鮮明な動画を撮影することはできない。同様に手ぶれ補正処理なども、手ぶれを検出してから予め規定された時間内に補正処理を完了できないと、補正が間に合わずに目的を達成できない。
 このような処理は非周期的なリアルタイムタスクである。
 周期型のリアルタイムタスクは、予め定めた時間ごとに一周期の処理を実行することが要求され、割り込み応答型のリアルタイムタスクは、上記の医師の操作等のイベント発生から、予め定めた応答時間内に処理を完了することが要求される。
 図1を参照して、コア(プロセッサ)によるリアルタイムタスクの実行シーケンスの例について説明する。
 図1には、複数のコア(プロセッサ)を有する情報処理装置内の1つのコア(プロセッサ)によるリアルタイムタスクの実行シーケンスの3つの例を示している。
 なお、リアルタイムタスクの、
 イベント発生時間=Ts、
 処理完了規定時間=Te、
 とする。
 リアルタイムタスクのリアルタイム性を満足するためには、イベント発生時間後、所定時間(Te-Ts)経過後の処理完了規定時間(Te)までに処理を完了させることが必要となる。
 (1)処理例1は、リアルタイムタスクの規定時間内の処理完了に成功した例である。
 処理例1では、イベント発生時間=Tsの後、所定の遅延時間(latency)後の時間T1にコアによる処理が開始され、時間T2に処理が終了している。
 処理終了時間T2は、処理完了規定時間Teより前の時間であり、この処理例1は、リアルタイム処理の成功例である。
 (2)処理例2は、リアルタイムタスクの規定時間内の処理完了の失敗例である。
 処理例2では、イベント発生時間=Tsの後、所定の遅延時間(latency)後の時間T1にコアによる処理が開始され、ここまでは、処理例1と同じである。しかし、処理終了時間T2は、処理完了規定時間Teより後の時間であり、この処理例2は、リアルタイム処理の失敗例である。
 この処理例2は、リアルタイムタスクの処理時間が長くなってしまった例である。これは、例えば、リアルタイムタスクの処理において必要となるリソースやデータが他のコアが実行する別のタスク(処理)の利用リソースやデータと競合し、リソースやデータを取得する待ち時間が発生する場合などに起こり得る例である。
 (3)処理例3も、リアルタイムタスクの規定時間内の処理完了失敗例である。
 処理例3では、イベント発生時間=Tsの後、所定の遅延時間(latency)後の時間T1にコアによる処理が開始されているが、イベント発生時間Tsから、処理開始時間T1までの遅延時間が、処理例1,2に比較して長くなっている。
 処理開始時間T1から、処理終了時間T2までの時間は、処理例1よりも短いが、結果として、処理終了時間T2は、処理完了規定時間Teより後の時間であり、この処理例3もリアルタイムタスクの処理失敗例である。
 この処理例3は、イベント発生時間Tsから、処理開始時間T1までの間に、このコアにおいて別の処理、例えば別のリアルタイムタスクまたはノンリアルタイムタスクが実行中であり、そのタスク(処理)の終了を待機する必要がある場合などに発生する例である。
  [2.コア間のタスク移動処理(マイグレーション)について]
 次に、図2を参照してコア間のタスク移動処理(マイグレーション)について説明する。
 マルチコアシステム等、複数のコア(プロセッサ)を有する情報処理装置において、複数のコアの各々は、それぞれに割り当てられたタスク(処理)を実行する。
 各コアにおいて実行されるタスクは、様々な異なるタスクであり、必要となる処理時間も異なるものとなる。
 従って、例えば2つのコアを利用してさまざまなタスクを実行させる構成において、各コアに割り当てられる処理のバランスが悪くなる場合がある。
 具体的には、一方のコアに割り当てられたタスクの処理量が多く、他方のコアに割り当てられたタスクの処理量が少なく、他方のコアに空き時間が発生してしまうといったことがある。
 このような場合、一方のコアに割り当てられていたタスクを他方のコアに移動させて処理を行わせることがある。
 このようなコア間のタスク移動処理をマイグレーションと呼ぶ。
 図2を参照して、マイグレーションの具体例について説明する。
 図2には、2つのコア(CPU)を利用してタスク(処理)を実行する構成におけるマイグレーションの例を示している。
 図に示す左から右の時間帯T10~T20,T20~T30,T30~T40の順に時間が経過する。図には、各時間帯における2つのコア1(CPU1)とコア2(CPU2)のタスクの実行状況を示している。
 時間帯T10~T20では、
 コア1(CPU1)は、タスクA、タスクB、タスクCを実行している。コア1(CPU1)は、これらの3つのタスクを例えば時分割処理として実行している。
 (時間T10~T20)に示すコア1(CPU1)のタスクA~Cの領域の大きさは、コア1(CPU1)における各タスクの処理時間の配分比率に対応する。
 一方、コア2(CPU2)は、タスクDのみを実行しており、処理を行っていない空き時間が存在する。
 このように一方のコアにタスクが集中し、他方のコアに空き時間が発生する処理不均衡が発生すると、総合的な処理時間、例えば、タスクA~Dの全てのタスクを完了させるまでの時間が長くなってしまう。
 このような場合に、コア間のタスク移動、すなわちマイグレーションが有効となる。
 図2の時間T20~T30の間に、コア1(CPU1)の実行処理として割り当てられていたタスクBを、コア2(CPU2)に移動させる。
 このコア間のタスク移動処理、すなわち、マイグレーションにより、コア1とコア2の処理量をほぼ均等にすることができる。
 マイグレーション処理後の、時間T30~T40では、
 コア1(CPU1)は、タスクAとタスクCのみを実行する。
 一方、コア2(CPU2)は、タスクDとタスクBを実行する。
 なお、時間T30~T40における図中の矢印は、各コアにおける各タスクの処理時間の配分を拡張できることを意味している。
 すなわち、コア1(CPU1)は、時間T10~T20において実行していたタスクBの処理時間を、タスクAとタスクCの処理時間として利用可能となる。
 また、コア2(CPU2)は、時間T10~T20における空き時間の全てを、マイグレーションによって移動してきたタスクBの処理時間として利用可能となる。
 このようなマイグレーションを行うことで、マルチコアシステムにおけるトータルの処理効率を高めることが可能となる。
  [3.シールド処理によるリアルタイム処理の実行例について]
 次に、図3を参照してリアルタイム処理を行うための専用コアを設定するシールド処理について説明する。
 一部のコアを特定の処理専用に割り当て、その処理に影響する外乱が入らないようにするコアの隔離処理(技術)をシールド処理、あるいはシールディング技術と呼ぶ。
 図3には、4つのコア、コア1(CPU1)~コア4(CPU4)の4つのコアを有するマルチコアシステムに対するシールド処理の一例を示している。
 図3に示す4コア構成において、左から2つ目のコア2(CPU2)を、リアルタイム処理専用のリアルタイムコアに設定する。すなわち、コア2(CPU2)をシールド(隔離)して、リアルタイム処理専用コアに設定する。
 コア2(CPU2)以外の他のコアは、非リアルタイム処理を実行する非リアルタイムコアとする。
 リアルタイムコアであるコア2(CPU2)には、リアルタイムタスクのみが割り当てられる。
 コア2(CPU2)以外の他のコア(コア1(CPU1),コア3(CPU3),コア4(CPU4))は、非リアルタイムタスクである様々なアプリケーション(App)を実行する。
 なお、各コアは、全てカーネルスレッドも実行する。
 カーネルスレッドは、各コアにおけるタスク実行に必要となるリソースやメモリの管理、さらにタスク切り替え等の処理を実行するカーネルの処理の一部に相当する。
 なお、カーネルは、OS(オペレーティングシステム)の中核となるソフトウェアである。
 リアルタイムコアであるコア2(CPU2)は、リアルタイムタスクの処理に必要となるデバイス、図に示すデバイスBからの割り込みのみを受信する。
 他のデバイスからのリアルタイムコアへの割り込みは禁止される。
 一方、コア2(CPU2)以外の他のコア(コア1(CPU1),コア3(CPU3),コア4(CPU4))は、様々なデバイスからの割り込みが許容される。
 デバイスは、コアによる処理結果を必要とするデバイスであり、例えばGPU(グラフィックプロセッシングユニット)、ハードディスク(HD)、USB等、様々なデバイスによって構成される。
 なお、リアルタイムコアであるコア2(CPU2)に対する割り込み許容デバイスは、図3に示す例では、デバイスBのみ1つであるが、複数のデバイスである場合もある。
 例えば、コア2(CPU2)において実行するリアルタイムタスクを、前述した例と同様、撮影画像のモニタ出力のための処理であるとする。
 この場合、デバイスBは、例えばGPU(グラフィックプロセッシングユニット)等である。
 リアルタイムコアであるコア2(CPU2)は、例えばGPUにおける画像処理プロセスに必要となる画像処理パラメータの生成を実行する。コア2(CPU2)は。生成したパラメータをGPUに提供する。GPUはコア2(CPU2)の生成パラメータを利用してモニタ出力用の画像を生成する。
 これら一連の処理は、カメラ撮影画像を即時にモニタ出力するために時間遅れなく実行することが必要となる。
 すなわち、コア2(CPU2)において実行する画像パラメータ生成処理はリアルタイムタスクとなる。
 図3に示すリアルタイムコアであるコア2(CPU2)におけるリアルタイムタスクのリアルタイム性、すなわち規定時間までのタスク完了(処理完了)を保証するため、コア2(CPU2)の隔離処理、すなわちシールド処理として、以下の処理を行う。
 (1)リアルタイムコアには、リアルタイムタスクのみを割り当てる。
 (2)リアルタイムコアには、リアルタイムタスクの処理に必要となるデバイスからの割り込みのみを許容し、他デバイスからの割り込みを禁止する。
 上記(1),(2)の2つの処理を伴うシールド処理により、リアルタイムコアであるコア2(CPU2)は、リアルタイムタスクを他のタスクや割り込みにより中断されることなく実行でき、リアルタイムタスクを規定時間内に完了させることができる。すなわちリアルタイム性を保証した処理が可能となる。
  [4.特定コアでリアルタイム処理を行うとともに装置全体の処理効率を向上させた構成について]
 次に、特定コアでリアルタイム処理を行うとともに装置全体の処理効率を向上させた本開示の構成について説明する。
 本開示の構成は、新たなシールディング技術を適用した処理を実行する構成である。
 具体的には、リアルタイム処理を実行するシールド対象のコアにおいても、そのコアにおいて実行されるリアルタイムタスクが規定時間に完了可能である限り、非リアルタイムタスクも実行させる構成としたものである。
 すなわち本開示の構成では、リアルタイムタスクを実行するコアのシールド処理を緩やかなシールド処理とする。すなわち、リアルタイムタスク実行コアにおいても状況に応じて非リアルタイムタスクを実行させる構成としたものである。
 このように、リアルタイムタスクの実行コアにおいても非リアルタイムタスクを実行させることで、コア数の余裕のない構成においても、装置全体の処理効率を向上させることが可能となる。
 以下、図4と図5を参照して、従来の厳格なシールド構成と、本開示の緩やかなシールド構成の差異について説明する。
 図4は、従来の厳格なシールド構成について説明する図であり、図5は、本開示の緩やかなシールド構成を説明する図である。
 まず、図4を参照して、従来の厳格なシールド構成について説明する。
 図4に示す構成は、先に図3を参照して説明した構成と同様の構成であり、4つのコア、コア1(CPU1)~コア4(CPU4)の4つのコアを有するマルチコアシステム構成である。
 図4に示す4コア構成において、左から2つ目のコア2(CPU2)に対して従来型の厳格なシールド(隔離)処理を実行し、コア2(CPU2)をリアルタイムタスク専用のリアルタイムコアに設定する。
 コア2(CPU2)以外の他のコアは、非リアルタイムタスクを実行する非リアルタイムコアとする。
 従来の厳格なシールドがなされたリアルタイムコアであるコア2(CPU2)には、リアルタイムタスク(RT)のみが割り当てられる。
 コア2(CPU2)以外の他のコア(コア1(CPU1),コア3(CPU3),コア4(CPU4))は、非リアルタイムタスク(non-RT)を実行する。
 なお、図4には示していないが、先に図3を参照して説明したと同様、各コアは、全てカーネルスレッドも実行する。
 前述したように、カーネルスレッドは、OS(オペレーティングシステム)の中核となるソフトウェアであるカーネル対応の処理であり、各コアにおけるタスク実行に必要となるリソースやメモリの管理、さらにタスク切り替え等の処理等が含まれる。
 図4に示す4つのコア、すなわち、コア1(CPU1)~コア4(CPU4)は、様々なデバイス、例えば、GPU(グラフィックプロセッシングユニット)、ハードディスク(HD)、USB等、様々なデバイス対応の処理を実行する。
 ただし、厳格なシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)は、リアルタイムタスクの処理に必要となるデバイスからの割り込みのみを受信し、そのデバイス対応の処理のみを実行する。
 厳格なシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)には、他のデバイスからの割り込みは禁止される。
 コア2(CPU2)以外の他のコア(コア1(CPU1),コア3(CPU3),コア4(CPU4))は、様々なデバイスからの割り込みが許容される。
 このように、図4に示す厳格なシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)は、リアルタイムタスクのリアルタイム性、すなわち規定時間までのタスク完了を保証するため、以下の厳格なシールド処理が行われる。
 (1)リアルタイムコアには、リアルタイムタスクのみを割り当てる。
 (2)リアルタイムコアには、リアルタイムタスクの処理に必要となるデバイスからの割り込みのみを許容し、他デバイスからの割り込みを禁止する。
 上記(1),(2)の2つの処理を伴う厳格なシールド処理により、リアルタイムコアであるコア2(CPU2)は、リアルタイムタスクを他のタスクや割り込みにより中断されることなく実行でき、リアルタイムタスクを規定時間内に完了させることができる。すなわちリアルタイム性を確保した処理が可能となる。
 しかし、このような厳格なシールド処理を行ってしまうと、リアルタイムコアであるコア2(CPU2)ではリアルタイムタスクのみが実行され、非リアルタイムタスクは、リアルタイムコア以外の非リアルタイムコアが全て処理を行わなければならない。
 コア数が多く、多くの非リアルタイムタスクを同時に実行することが可能な構成であれば問題ないが、例えばコア数が2つや3つの少ないコア数の設定では、シールドされたリアルタイムコア以外の非リアルタイムコアの処理負荷が増大し、非リアルタイムタスクの完了までの時間が長くなり、装置全体の処理効率が著しく低下してしまうという問題が発生する。
 図4に示すように、厳格なシールド処理を行うと、リアルタイムコアであるコア2(CPU2)は、リアルタイムタスク(RT)のみ実行可能であり、空き時間があるにも関わらず、非リアルタイムタスクは割り当てられず実行できない。
 結果として、多くの非リアルタイムタスクが発生した場合、少ない数の非リアルタイムコアがこれら全ての非リアルタイムタスクを実行しなければならず、非リアルタイムタスクの処理遅延が大きくなるという問題が発生する。
 このような問題を解決する本開示の構成、すなわち、緩やかなシールド処理を行う本開示の構成について、図5を参照して説明する。
 図5に示す構成も、図4を参照して説明した構成と同様の構成であり、4つのコア、コア1(CPU1)~コア4(CPU4)の4つのコアを有するマルチコアシステム構成である。
 図5に示す4コア構成において、左から2つ目のコア2(CPU2)に対して本開示の緩やかなシールド(隔離)処理を実行し、コア2(CPU2)を、リアルタイムタスク(RT)を行うリアルタイムコアに設定する。
 本開示の構成では、リアルタイムコアであるコア2(CPU2)は、リアルタイムタスク(RT)のみならず、非リアルタイムタスク(non-RT)も実行する。
 ただし、リアルタイムコアで実行中のリアルタイムタスク(RT)の規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定された場合は、その非リアルタイムタスク(non-RT)を他のコアに移動(マイグレーション)する。
 コア2(CPU2)以外の他のコアは、非リアルタイムタスク(non-RT)を実行する非リアルタイムコアである。
 図4を参照して説明した従来の厳格なシールドがなされたリアルタイムコア(コア2(CPU2))は、リアルタイムタスク(RT)のみが割り当てられていたが、図5に示す本開示の緩やかなシールドがなされたリアルタイムコア(コア2(CPU2))は、リアルタイムタスク(RT)のみならず、非リアルタイムタスク(non=RT)も実行する。
 ただし、上述したように、リアルタイムコア(コア2(CPU2))で実行中の非リアルタイムタスク(non=RT)は、予め規定された条件の発生に基づいて非リアルタイムコアに移動される。
 この予め規定された条件とは、リアルタイムコアで実行中のリアルタイムタスク(RT)の規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定されたことの検出である。
 この条件が発生した場合、その非リアルタイムタスク(non-RT)は他のコアに移動(マイグレーション)される。
 なお、図5には示していないが、先に図3を参照して説明したと同様、各コアは、全てカーネルスレッドも実行する。
 前述したように、カーネルスレッドは、OS(オペレーティングシステム)の中核となるソフトウェアであるカーネル対応の処理であり、各コアにおけるタスク実行に必要となるリソースやメモリの管理、さらにタスク切り替え等の処理である。
 図5に示す4つのコア、すなわち、コア1(CPU1)~コア4(CPU4)は、様々なデバイス、例えば、GPU(グラフィックプロセッシングユニット)、ハードディスク(HD)、USB等、様々なデバイス対応の処理を実行する。
 緩やかなシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)は、リアルタイムタスクの処理に必要となるデバイスからの割り込みのみならず、非リアルタイム処理に関する割り込みも禁止されることなく受信する。
 前述した図4に示す厳格なシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)には、他のデバイスからの割り込みは禁止されるが、図5に示す緩やかなシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)には、他のデバイスからの割り込みも許容される。
 コア2(CPU2)以外の他のコア(コア1(CPU1),コア3(CPU3),コア4(CPU4))も、様々なデバイスからの割り込みが許容される。
 図5に示す緩やかなシールド処理によって隔離されたリアルタイムコアであるコア2(CPU2)は、リアルタイム処理のリアルタイム性、すなわち規定時間までの処理完了を保証するため、以下の設定のシールド処理が行われる。
 (1)リアルタイムコアには、リアルタイムタスクを割り当てる。
 (2)リアルタイムコアには、非リアルタイムタスクも割り当てる。
 (3)リアルタイムコアで実行中のリアルタイムタスクの規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理に設定された場合は、その非リアルタイムタスク(non-RT)を他のコアに移動(マイグレーション)する。
 上記(1),(2)、(3)の3つの処理を伴う緩やかなシールド処理により、リアルタイムコアであるコア2(CPU2)は、リアルタイムタスクを規定時間内に完了させることができる。すなわちリアルタイム性を確保したリアルタイムタスクの処理が可能となる。
 このような緩やかなシールド処理を行うことで、例えばコア数が2つや3つの少ないコア数の設定において、非リアルタイム処理の処理量が増加した場合でも、リアルタイムコアと非リアルタイムコアの両者を利用した非リアルタイム処理を実行することが可能となり、非リアルタイム処理完了までの時間を短縮することができ、装置全体の処理効率を向上させることが可能となる。
  [5.各コアにおける実行タスクの制御を行うタスクスケジューラについて]
 図5を参照して説明したように、本開示の装置では、リアルタイムコアに対して緩やかなシールド処理を実行し、リアルタイムコアに対して、リアルタイムタスクを割り当てるとともに、非リアルタイムタスクも割り当てる。
 ただし、リアルタイムコアで実行中のリアルタイムタスクの規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定された場合、その非リアルタイムタスク(non-RT)を他のコアに移動(マイグレーション)する処理を行う。
 これらの処理を行うことで、装置全体の処理効率を向上させることを可能としている。
 複数のコアに対するタスクの割り当てや、タスクの移動(マイグレーション)は、OSの一部機能であるカーネルにおいて実行される。
 図6を参照して、カーネルの実行するコアに対するタスクの割り当てや、タスクの移動(マイグレーション)処理について説明する。
 図6には、本開示の情報処理装置を構成する複数のコア(CPU)によって構成されるマルチコア20と、複数のデバイスによって構成されるデバイス群10を示している。
 デバイス群10には、様々なデバイスが含まれる。具体的には、マルチコア20内のいずれかのコアによる処理結果を必要とするデバイスであり、例えばGPU(グラフィックプロセッシングユニット)、ハードディスク(HD)、USB等、様々なデバイスによって構成される。
 マルチコア20内には、ハードウェアとして2以上のコア(CPU)が含まれる。
 図6には、マルチコア20内のハードウェアであるコア(CPU)の実行するソフトウェア構成(ソフトウェアスタック)を示している。
 図には、ベーススタックとしてのカーネル(OS)30と、その上位スタックとしての、複数のタスクを示している。
 複数のタスクには、処理完了期限や処理開始時点が規定されたリアルタイムタスク(RT)52と、それ以外の非リアルタイムタスク(non-RT)51,53,54等、多数のタスクが含まれる。
 これらは、マルチコア20を構成する複数のコアの各々において実行される。
 また、マルチコア20を構成する各コアにおいては、カーネルスレッドが実行される。先に図3を参照して説明したカーネルスレッドである。
 カーネルスレッドは、OS(オペレーティングシステム)の中核となるソフトウェアであるカーネル対応の処理であり、各コアにおけるタスク実行に必要となるリソースやメモリの管理、さらにタスク切り替え等の処理が含まれる。
 図6に示すように、カーネルは、タスクスケジューラ31の機能も有する。
 タスクスケジューラ31は、マルチコア20を構成する各コアに対するタスクの割り当てや、各コア間のタスク移動処理等のタスクスケジューリング処理を実行する。
 これらのタスクスケジューリング処理も各コアにおいて実行されるカーネルスレッドの一部である。
 図6に示すカーネル(OS)30のタスクスケジューラ31は、マルチコア20を構成する各コアに対するタスクの割り当てと、各コア間のタスク移動等の処理を実行する。
 タスクスケジューラ31は、先に図5を参照して説明したタスク移動処理(マイグレーション)も実行する。
 すなわち、リアルタイムコアで実行中のリアルタイムタスクの規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定された場合、その非リアルタイムタスク(non-RT)を他のコアに移動(マイグレーション)する処理を行う。
 タスクスケジューラ31の実行する処理のシーケンスについて、図7に示すフローチャートを参照して説明する。
 図7に示すフローの各ステップの処理について説明する。
  (ステップS101)
 タスクスケジューラ31は、まず、ステップS101において、通常時のタスクスケジューリング処理を実行する。
 具体的には、リアルタイムタスクをリアルタイムコアに割り当て、非リアルタイムタスクを、リアルタイムコア、非リアルタイムコアを含む全てのコアの空き時間等に応じて割り当てるタスクスケジューリングを実行する。
  (ステップS102)
 次に、タスクスケジューラ31は、ステップS102において、リアルタイムコアで実行中のリアルタイムタスクのリアルタイム性(規定時間までの処理完了確実性)の確保に影響する処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定されたか否かを判定する。
 タスクスケジューラ31は、全てのコアで実行中の処理を監視し、さらに、全てのデバイスからの処理要求、割り込み処理の要求等、すべての処理のスケジュールを監視し、管理している。
 タスクスケジューラ31は、この処理監視処理の一部の処理として、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として新たにスケジューリングされた処理が、
 「リアルタイムコアで実行中のリアルタイム処理のリアルタイム性(規定時間までの処理完了確実性)の確保に影響する処理(リアルタイム性阻害処理)」
 であるか否かを判定する処理を実行する。
 「リアルタイムコアで実行中のリアルタイム処理のリアルタイム性(規定時間までの処理完了確実性)の確保に影響する処理(リアルタイム性阻害処理)」
 とは、例えば、リアルタイムコアで実行中のリアルタイム処理の中断を発生させる処理等である。
 この「リアルタイムコアで実行中のリアルタイム処理のリアルタイム性(規定時間までの処理完了確実性)の確保に影響する処理(リアルタイム性阻害処理)」
 の具体例について、図8を参照して説明する。
 図8には、「リアルタイムコアで実行中のリアルタイム処理のリアルタイム性(規定時間までの処理完了確実性)の確保に影響する処理(リアルタイム性阻害処理)」
 の例として、以下の3つの処理を示している。
 (1)システムコール
 (2)割り込み禁止処理
 (3)プリエンプションの禁止処理
 (1)システムコールは、OS(カーネル)によって発行される命令、関数(例えばタスク対する機能提供や利用のための命令、関数)の出力処理である。
 (2)割り込み禁止処理は、実行中の処理を中断して強制的に実行する割り込みの禁止処理である。
 (3)プリエンプションの禁止処理は、実行中のタスクを一時的に中断するプリエンプションの禁止処理である
 これら図8に示す(1)~(3)の処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定されると、リアルタイムコアにおいて実行中のリアルタイムタスクの中断が発生する可能性がある。
 タスクスケジューラ31は、ステップS102において、例えば、図8に示す(1)~(3)の処理のようなリアルタイム性阻害処理が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理として設定されたか否かを判定する。
 ステップS102の判定がYesの場合、すなわち、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理としてリアルタイム性阻害処理が設定されたと判定した場合は、ステップS103に進む。
 それ以外の場合は、ステップS101に戻り、通常のタスクスケジューリング処理を継続する。
  (ステップS103)
 ステップS102の判定がYesの場合、すなわち、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理としてリアルタイム性阻害処理が設定されたと判定した場合は、ステップS103に進む。
 タスクスケジューラ31は、ステップS103において、リアルタイム性阻害処理を実行予定処理として設定した非リアルタイムタスク(non-RT)を他のコアに移動(マイグレーション)する処理を行う。
 このタスク移動処理(マイグレーション)により、リアルタイムタスクを実行しているリアルタイムコアは、リアルタイム性阻害処理を実行予定の非リアルタイムタスクを実行する必要がなくなり、リアルタイムタスクの不測の中断を発生させることなく、予定された規定時間までにリアルタイムタスクを終了させることができる。すなわちリアルタイム性を確保したリアルタイムタスクを実行することができる。
  [6.本開示の処理を適用した具体的なシステムの構成と処理例について]
 次に、本開示の処理を適用した具体的なシステムの構成と処理例について説明する。
 以下において説明する実施例は、4K画像を撮影する内視鏡システムである。
 4K画像は例えば3840×2160画素の高密度画素を有する高画質画像である。
 内視鏡システムは、例えば4K画像1秒間にを120フレーム撮影し、モニタに表示する処理を実行する処理を行う。
 すなわち、内視鏡によって撮影された画像の処理を行う画像処理装置は、120f/sの画像を継続して入力し、モニタに出力するための画像を生成する処理を継続して実行しなければならない。
 図9に内視鏡システム100の構成例を示す。
 内視鏡システム100は、カメラ装置110、画像処理装置120、モニタ140を有する。
 カメラ110は、4K画像を120f/sのフレームレートで撮影して、撮影画像を画像処理装置120に入力する。
 画像処理装置120は、カメラ110から入力する120f/sの画像に対する画像処理、すなわち、1秒間に120枚の撮影画像各々に対する処理を実行して、モニタ140に出力するための出力画像を生成する。
 画像処理装置120の生成した出力画像は、モニタ140に出力される。
 例えば医師が、モニタ140の出力画像を見ながら適切な処置を行う。
 このモニタ140に出力される画像は、リアルタイムの画像であることが必要であり、大きな時間遅れが発生することは許容されない。
 従って、画像処理装置120は、カメラ110からフレームレート=120f/sの画像を入力して、各フレームの画像処理を時間遅れなく実行して、1秒間に120フレームの出力画像を生成する必要がある。
 この画像生成処理はリアルタイムタスクである。
 図9に示すように、画像処理装置120は、複数のコア(CPU)を有するマルチコア130と、複数のデバイスからなるデバイス群140を有する。
 マルチコア130は、2つのコア、コア1(CPU1)131と、コア2(CPU2)132を有する。
 デバイス群140は複数のデバイスA(GPU)141,デバイスB(カメラ)142,デバイスC(USB)143・・・によって構成される。これらデバイスは、コアによる処理結果を必要とするデバイスであり、例えばGPU(グラフィックプロセッシングユニット)、カメラ、USB等、様々なデバイスによって構成される。
 カメラ110からフレームレート=120f/sの画像を入力して、各フレームの画像処理を実行して、1秒間に120フレームの出力画像を生成する場合、各フレーム単位で、以下の処理を行うことが必要となる。
 (処理1)マルチコア30内のリアルタイムコア、例えばコア1(CPU1)131による処理、
 (処理2)デバイス群の1つのデバイスであるデバイスA(GPU)141による処理、
 これらの処理1,2をシーケンシャルに実行することが必要となる。
 これら一連の処理は、カメラ撮影画像を即時にモニタ出力するために時間遅れなく実行することが必要となる。
 リアルタイムコアであるコア1(CPU1)131は、例えばデバイスA(GPU)141における画像処理プロセスに必要となる画像処理パラメータの生成を実行する。コア1(CPU1)131は。生成したパラメータをデバイスA(GPU)141に提供する。デバイスA(GPU)141はコア1(CPU1)の生成パラメータを利用してモニタ出力用の画像を生成する。
 これらの処理は、カメラ撮影画像を即時にモニタ出力するために時間遅れなく実行することが必要であり、コア1(CPU1)131において実行する画像パラメータ生成処理はリアルタイムタスクとして実行されなければならない。
 図10を参照して、リアルタイムコアであるコア1(CPU1)131と、デバイスA(GPU)141の処理シーケンスについて説明する。
 図10の下部に処理シーケンスを示す。
 時間軸(t)に沿って左から右に時間が経過する。
 時間T1~T2はカメラからの入力画像の周期(V周期=1フレーム間隔)である。
 本例では入力画像は120f/sのフレームレートであり、
 1/120=8.3msであるので、
 V周期=T1~T2=8.3msである。
 リアルタイムコアであるコア1(CPU1)131と、デバイスA(GPU)141は、8.3ms間隔で、繰り返し、1フレーム単位の画像処理を行う必要がある。
 図10に示すシーケンス図は、1つのフレーム画像の処理シーケンスを示している。
 まず、時間T0後の時間t11において、リアルタイムコアであるコア1(CPU1)131に対して、デバイスB(カメラ)142から、画像処理要求に相当する画像入力割り込みが入力される。
 なお、画像入力割り込みをリアルタイムコアであるコア1(CPU1)131に入力する制御はカーネルのタスクスケジューラが実行する。
 リアルタイムコアであるコア1(CPU1)131は、この割り込み入力に応じて、所定の遅延時間後の時間t12から、実際の処理、具体的には、GPUにおける画像処理に利用される画像処理パラメータ生成処理を開始する。
 この処理はリアルタイムタスクであり、処理完了までの時間が規定される。
 リアルタイムコアであるコア1(CPU1)131は、時間t13において、画像処理パラメータ生成処理を完了し、生成した画像処理パラメータをデバイスA(GPU)141に出力する。
 デバイスA(GPU)141は、その後、時間T2までの間に出力画像を生成してモニタ140に出力する。
 従来の厳格なシールド処理を実行した場合、リアルタイムコアであるコア1(CPU1)131は、リアルタイムタスクのみの実行が許容される設定であり、時間t13以後、時間T2までの時間、タスクを実行せず、次のフレームの処理まで待機せざる得なかった。
 しかし、本開示の緩やかなシールド処理を実行する構成では、リアルタイムコアであるコア1(CPU1)131は、リアルタイムタスクのみならず、非リアルタイムタスクの実行も許容される。
 従って、時間t13以後、時間T2までの時間、非リアルタイムタスクの処理を実行することが可能となる。
 図9に示すように2つのコアを有する構成では、2つのコアを利用した非リアルタイムタスクの並列処理が可能となり、1つのコアにのみ非リアルタイムタスクを実行させる構成に比較すると、処理効率を飛躍的に増大させることが可能となる。
 なお、リアルタイムコアであるコア1(CPU1)131は、時間t12~t13の期間においても、画像処理パラメータの生成処理であるリアルタイムタスクに併せて時分割で非リアルタイムタスクを実行することも可能である。
 ただし、この時に実行している非リアルタイムタスクに、リアルタイム性阻害処理が発生した場合、すなわち、リアルタイムコアで実行中のリアルタイムタスク(RT)の規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が発生した場合は、その非リアルタイムタスク(non-RT)は他のコアに移動(マイグレーション)される。
 これらの処理を行うことで、リアルタイムコアにおいて実行されるリアルタイムタスクのリアルタイム性を確保した処理を確実に実行させることが可能となる。
  [7.情報処理装置の構成例について]
 次に、図11を参照して上述した実施例に従った処理を実行する情報処理装置のハードウェア構成例について説明する。
 例えば図9、図10を参照して説明した画像処理装置120も、図11に示す情報処理装置300のハードウェア構成を有する。
 以下、図11に示す情報処理装置を構成する各構成要素について説明する。
 マルチコア301は、複数のコア(CPU:Central Processing Unit)によって構成される。マルチコア301は、図11に示すようにコア1(CPU1)351、コア2(CPU2)352、コア3(CPU3)353等、最小でも2つ以上のコアを有する。
 これらの複数のコア(CPU)では、例えば、ROM(Read Only Memory)303、または記憶部309に記憶されているプログラムに従った様々な処理が実行される。
 なお、マルチコア301内のコアの少なくとも1つのコアが上述した実施例において説明した緩やかなシールド処理によって処理が制限されたリアルタイムコアに設定される。
 前述したように、本開示の構成では、リアルタイムタスクを実行するコアのシールド処理を緩やかなシールド処理として、リアルタイムコアにおいても状況に応じて非リアルタイムタスクの実行が許容される。
 ただし、リアルタイムコアで実行中のリアルタイムタスクの規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理(リアルタイム性阻害処理)が、リアルタイムコアで実行中の非リアルタイムタスク(non-RT)の実行予定処理に設定された場合は、その非リアルタイムタスク(non-RT)を他のコアに移動(マイグレーション)するという処理が実行される。
 リアルタイムコアに対して、上記条件のタスク移動(マイグレーション)を行う設定とした緩やかなシールド処理を行うことで、リアルタイムコアは、リアルタイムタスクを規定時間内に完了させることができる。すなわちリアルタイムタスクのリアルタイム性を確保した処理が可能となる。
 GPU(Graphic Processing Unit)302は、画像処理を実行する画像専用プロセッサである。前述したように、CPUの生成したパラメータを利用した画像処理等を行う。
 ROM(Read Only Memory)303は、マルチコア301やGPU302が実行するプログラムやパラメータ等の記憶領域として利用される。
 RAM(Random Access Memory)304は、マルチコア301やGPU302が実行する処理のワークエリア、パラメータ記憶領域、その他のデータの記録領域等として利用される。
 これら、マルチコア301、GPU302、ROM303、およびRAM304は、バス305により相互に接続されている。
 マルチコア301やGPU302等はバス305を介して入出力インタフェース306に接続され、入出力インタフェース306には、各種スイッチ、キーボード、タッチパネル、マウス、マイクロフォン、さらに、センサ、カメラ等のデータ取得部などよりなる入力部307、モニタ等のディスプレイ、スピーカなどよりなる出力部309が接続されている。
 マルチコア301は、入力部307から入力される指令や状況データ等を入力し、各種の処理を実行し、処理結果を例えば出力部308に出力する。
 入出力インタフェース306に接続されている記憶部309は、例えばハードディスク等からなり、マルチコア301が実行するプログラムや各種のデータを記憶する。通信部310は、インターネットやローカルエリアネットワークなどのネットワークを介したデータ通信の送受信部として機能し、外部の装置と通信する。
 入出力インタフェース306に接続されているドライブ311は、磁気ディスク、光ディスク、光磁気ディスク、あるいはメモリカード等の半導体メモリなどのリムーバブルメディア312を駆動し、データの記録あるいは読み取りを実行する。
  [8.本開示の構成のまとめ]
 以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
 なお、本明細書において開示した技術は、以下のような構成をとることができる。
 (1) データ処理を実行する複数のコアと、
 前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
 前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
 前記タスクスケジューラは、
 前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行し、
 予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行する情報処理装置。
 (2) 前記タスクスケジューラは、
 前記リアルタイムコアで実行中のリアルタイムタスクの規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理であるリアルタイム性阻害処理が、前記リアルタイムコアで実行中の非リアルタイムタスクの実行予定処理として設定された場合、該非リアルタイムタスクを、前記リアルタイムコアから他のコアに移動するマイグレーションを実行する(1)に記載の情報処理装置。
 (3) 前記リアルタイム性阻害処理は、
 システムコール、または割り込み禁止処理、またはプリエンプション禁止処理、またはCPU例外処理、またはキャッシュロックのいずれかである(2)に記載の情報処理装置。
 (4) 前記タスクスケジューラは、
 リアルタイムタスクを前記リアルタイムコアのみに割り当てて、前記リアルタイムコアにおいて実行させ、
 非リアルタイムタスクを前記非リアルタイムコアとリアルタイムコアに割り当てて、複数コアで実行させるタスク割り当て処理を実行する(1)~(3)いずれかに記載の情報処理装置。
 (5) 前記複数のコアの各々は、プロセッサである(1)~(4)いずれかに記載の情報処理装置。
 (6) 前記情報処理装置は、
 カメラ撮影画像を入力して表示部に表示する出力画像を生成する画像処理を実行する構成であり、
 前記リアルタイムコアは、
 前記画像処理を実行するGPU(Graphic Processing Unit)に提供するパラメータの生成を前記リアルタイムタスクとして実行する(1)~(5)いずれかに記載の画像処理装置。
 (7) 前記リアルタイムコアは、
 1つの画像フレーム対応のパラメータ生成処理をリアルタイムタスクとして実行し、その後の空き時間に非リアルタイムタスクを実行する(6)に記載の情報処理装置。
 (8) 情報処理装置において実行する情報処理方法であり、
 前記情報処理装置は、
 データ処理を実行する複数のコアと、
 前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
 前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
 前記タスクスケジューラが、
 前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行し、
 予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行する情報処理方法。
 (9) 情報処理装置において情報処理を実行させるプログラムであり、
 前記情報処理装置は、
 データ処理を実行する複数のコアと、
 前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
 前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
 前記プログラムは、前記タスクスケジューラに、
 前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行させ、
 予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行させるプログラム。
 また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
 なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
 以上、説明したように、本開示の一実施例の構成によれば、リアルタイムコアにおいて非リアルタイムタスクを実行させて処理効率を向上させ、かつリアルタイムタスクのリアルタイム性を確保した構成が実現される。
 具体的には、例えば、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成された複数コアと、複数コアのタスクのスケジューリングを行うタスクスケジューラを有する。タスクスケジューラは、リアルタイムコアにリアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当てを実行し、予め規定した事象発生に応じて、リアルタイムコアに割り当てた非リアルタイムタスクを他コアに移動するマイグレーションを行う。
 本構成により、リアルタイムコアにおいて非リアルタイムタスクを実行させて処理効率を向上させ、かつリアルタイムタスクのリアルタイム性を確保した構成が実現される。
 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)

Claims (9)

  1.  データ処理を実行する複数のコアと、
     前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
     前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
     前記タスクスケジューラは、
     前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行し、
     予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行する情報処理装置。
  2.  前記タスクスケジューラは、
     前記リアルタイムコアで実行中のリアルタイムタスクの規定時間までの処理完了(リアルタイム性)が妨げられる可能性がある処理であるリアルタイム性阻害処理が、前記リアルタイムコアで実行中の非リアルタイムタスクの実行予定処理として設定された場合、該非リアルタイムタスクを、前記リアルタイムコアから他のコアに移動するマイグレーションを実行する請求項1に記載の情報処理装置。
  3.  前記リアルタイム性阻害処理は、
     システムコール、または割り込み禁止処理、またはプリエンプション禁止処理、またはCPU例外処理、またはキャッシュロックのいずれかである請求項2に記載の情報処理装置。
  4.  前記タスクスケジューラは、
     リアルタイムタスクを前記リアルタイムコアのみに割り当てて、前記リアルタイムコアにおいて実行させ、
     非リアルタイムタスクを前記非リアルタイムコアとリアルタイムコアに割り当てて、複数コアで実行させるタスク割り当て処理を実行する請求項1に記載の情報処理装置。
  5.  前記複数のコアの各々は、プロセッサである請求項1に記載の情報処理装置。
  6.  前記情報処理装置は、
     カメラ撮影画像を入力して表示部に表示する出力画像を生成する画像処理を実行する構成であり、
     前記リアルタイムコアは、
     前記画像処理を実行するGPU(Graphic Processing Unit)に提供するパラメータの生成を前記リアルタイムタスクとして実行する請求項1に記載の画像処理装置。
  7.  前記リアルタイムコアは、
     1つの画像フレーム対応のパラメータ生成処理をリアルタイムタスクとして実行し、その後の空き時間に非リアルタイムタスクを実行する請求項6に記載の情報処理装置。
  8.  情報処理装置において実行する情報処理方法であり、
     前記情報処理装置は、
     データ処理を実行する複数のコアと、
     前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
     前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
     前記タスクスケジューラが、
     前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行し、
     予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行する情報処理方法。
  9.  情報処理装置において情報処理を実行させるプログラムであり、
     前記情報処理装置は、
     データ処理を実行する複数のコアと、
     前記複数のコアにおいて実行するタスクのスケジューリングを行うタスクスケジューラを有し、
     前記複数のコアは、リアルタイムタスクを実行するリアルタイムコアと、非リアルタイムタスクを実行する非リアルタイムコアによって構成され、
     前記プログラムは、前記タスクスケジューラに、
     前記リアルタイムコアに、リアルタイムタスクのみならず、非リアルタイムタスクを実行させるタスク割り当て処理を実行させ、
     予め規定した事象の発生に応じて、前記リアルタイムコアに割り当てた非リアルタイムタスクを他のコアに移動するマイグレーションを実行させるプログラム。
PCT/JP2019/005042 2018-03-28 2019-02-13 情報処理装置、および情報処理方法、並びにプログラム WO2019187719A1 (ja)

Applications Claiming Priority (2)

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

Publications (1)

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

Family

ID=68058992

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/005042 WO2019187719A1 (ja) 2018-03-28 2019-02-13 情報処理装置、および情報処理方法、並びにプログラム

Country Status (1)

Country Link
WO (1) WO2019187719A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115080280A (zh) * 2022-08-16 2022-09-20 南方电网数字电网研究院有限公司 一种多时间尺度数据融合的边缘计算平台控制***和方法
WO2023071643A1 (zh) * 2021-10-29 2023-05-04 华为技术有限公司 用于处理任务的方法、装置、电子设备和介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005157955A (ja) * 2003-11-28 2005-06-16 Internatl Business Mach Corp <Ibm> 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体
JP2005190238A (ja) * 2003-12-26 2005-07-14 Matsushita Electric Ind Co Ltd リアルタイム制御方式
JP2013533524A (ja) * 2010-08-11 2013-08-22 日本電気株式会社 マルチプロセッサ・システムのためのプライマリ−バックアップに基づくフォールト・トレラント方法
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 (ja) * 2013-02-27 2014-09-08 Nec Computertechno Ltd リソース管理装置、リソースの管理方法、及びプログラム
JP2018045638A (ja) * 2016-09-16 2018-03-22 株式会社東芝 情報処理装置、情報処理方法及びプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005157955A (ja) * 2003-11-28 2005-06-16 Internatl Business Mach Corp <Ibm> 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体
JP2005190238A (ja) * 2003-12-26 2005-07-14 Matsushita Electric Ind Co Ltd リアルタイム制御方式
JP2013533524A (ja) * 2010-08-11 2013-08-22 日本電気株式会社 マルチプロセッサ・システムのためのプライマリ−バックアップに基づくフォールト・トレラント方法
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 (ja) * 2013-02-27 2014-09-08 Nec Computertechno Ltd リソース管理装置、リソースの管理方法、及びプログラム
JP2018045638A (ja) * 2016-09-16 2018-03-22 株式会社東芝 情報処理装置、情報処理方法及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023071643A1 (zh) * 2021-10-29 2023-05-04 华为技术有限公司 用于处理任务的方法、装置、电子设备和介质
CN115080280A (zh) * 2022-08-16 2022-09-20 南方电网数字电网研究院有限公司 一种多时间尺度数据融合的边缘计算平台控制***和方法
CN115080280B (zh) * 2022-08-16 2022-12-27 南方电网数字电网研究院有限公司 一种多时间尺度数据融合的边缘计算平台控制***和方法

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
US8943252B2 (en) Latency sensitive software interrupt and thread scheduling
EP0425320A2 (en) Multiprocessor system and process synchronisation method therefor
JP2013232207A (ja) コンピュータマイクロジョブを中断せずに実行するようスケジュールするための方法、システムおよび装置
JP6895235B2 (ja) 環境的に調整されたスラックを割り当てるためのシステム及び方法
CN108241527B (zh) 一种任务调度方法及电子设备
Elliott et al. Supporting real-time computer vision workloads using OpenVX on multicore+ GPU platforms
WO2019187719A1 (ja) 情報処理装置、および情報処理方法、並びにプログラム
KR101392584B1 (ko) 리소스 모니터링을 이용한 동적 데이터 처리 장치 및 그 방법
JP6372262B2 (ja) 印刷装置、およびプログラム
JP2010287046A (ja) リソース配分システム、リソース配分方法及びリソース配分プログラム
US20050132038A1 (en) Resource reservation system and resource reservation method and recording medium storing program for executing the method
CN109766168B (zh) 任务调度方法和装置、存储介质以及计算设备
JP5726006B2 (ja) タスクおよびリソースのスケジューリング装置及びその方法並びに制御装置
EP2905703A1 (en) Parallel computer system, control method of parallel computer system, and computer-readable storage medium
US20050066093A1 (en) Real-time processor system and control method
JP4048638B2 (ja) スケジューリング装置及び方法並びに記録媒体
JP5299869B2 (ja) コンピュータマイクロジョブ
Souto et al. Overhead-aware schedulability evaluation of semi-partitioned real-time schedulers
CN114651235A (zh) 多线程微处理器中的共享资源分配
US20230305872A1 (en) Efficient central processing unit overcommit for virtual machines with symmetric multi-processing
JP2004234546A (ja) プログラム実行方法および装置
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