WO2007081022A1 - マルチプロセッサシステム、マルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム - Google Patents

マルチプロセッサシステム、マルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム Download PDF

Info

Publication number
WO2007081022A1
WO2007081022A1 PCT/JP2007/050508 JP2007050508W WO2007081022A1 WO 2007081022 A1 WO2007081022 A1 WO 2007081022A1 JP 2007050508 W JP2007050508 W JP 2007050508W WO 2007081022 A1 WO2007081022 A1 WO 2007081022A1
Authority
WO
WIPO (PCT)
Prior art keywords
request
unit
task
interrupt
processor
Prior art date
Application number
PCT/JP2007/050508
Other languages
English (en)
French (fr)
Inventor
Akinari Todoroki
Katsuya Tanaka
Original Assignee
Seiko Epson Corporation
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 Seiko Epson Corporation filed Critical Seiko Epson Corporation
Priority to EP07706835A priority Critical patent/EP1876531A4/en
Publication of WO2007081022A1 publication Critical patent/WO2007081022A1/ja

Links

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]
    • 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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Definitions

  • the present invention relates to a multiprocessor system and a program for causing a computer to execute a control method of the multiprocessor system, and particularly to a multiprocessor system capable of smoothly processing tasks in parallel and a control method of the multiprocessor system.
  • a program to be executed by a computer related to a program to be executed by a computer.
  • a processor used in a specific device is called an embedded system!
  • multiprocessors and multithread processors are often employed in embedded systems. Adopting a multiprocessor is advantageous for reducing the clock and improving the response of the device.
  • Patent Document 1 is an example of a prior art that uses a single processor (functionally distributed processor) software for a multiprocessor.
  • the invention of Patent Document 1 is to port an OS (Operating System) for a function distributed processor based on / z ITRO N (registered trademark) to a multiprocessor.
  • the invention of Patent Document 1 gives priority to interrupt processing with high urgency by accepting interrupt processing that does not require issuing of a system call while a system call for calling an OS is issued in a function-distributed processor. To be processed.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 8-2977581
  • a multiprocessor of an embedded device a plurality of processors (unit processors) having different functions and features may be provided in the multiprocessor, and a specific task may be assigned to a predetermined unit processor.
  • a task that is executed only on a specific unit processor (fixed to the unit processor) is called a static task, and a task that is assigned to any unit processor (unit processor is not fixed) is called a dynamic task.
  • the invention described in Patent Document 1 simply diverts a function-distributed OS to a multiprocessor, it does not consider the handling of multiprocessor static tasks in parallel processing! .
  • the present invention has been made in view of the above points, and in consideration of the fixation and non-fixation of task unit processors while diverting the assets of programs such as the OS of the conventional function distributed processor.
  • An object of the present invention is to provide a multiprocessor system capable of processing and a program for causing a computer to execute a control method of the multiprocessor system. Disclosure of the invention
  • a multiprocessor system is a multiprocessor system including a plurality of unit processors, and the first request and the execution request of a program that can be executed even if the unit processor is out of position.
  • a request accepting means for accepting a second request that is an execution request of a program that can be executed only in a specified unit processor of the unit processors, and a first request and a second request accepted by the request accepting means,
  • Unit processor assigning means for assigning to the unit processors according to the priority of the first request and the second request.
  • the multiprocessor system compares the priority between the first request and the second request of the unit processor allocation means power, and sends the first request and the second request to one unit processor. It is characterized by assigning.
  • the multiprocessor system of the present invention is characterized in that the second request is assigned to the unit processor in preference to the first request to the unit processor.
  • the multiprocessor system of the present invention is characterized by further comprising an allocation unit processor determining unit that determines a unit processor assigned to the first request when the first request is executed.
  • the multiprocessor system of the present invention is characterized by comprising allocation unit processor setting means for presetting a unit processor assigned to the second request.
  • the multiprocessor system of the present invention is characterized in that a task execution request is allocated to the unit processor.
  • the multiprocessor system according to the present invention is characterized in that an execution request for interrupt processing for requesting interruption of another task is assigned to the unit processor.
  • a program for causing a computer to execute the multiprocessor system control method of the present invention is a program for causing a computer to execute a multiprocessor system control method applied to a multiprocessor system including a plurality of unit processors.
  • the first request that is an execution request of a program that can be executed even if the unit processor is! /, Or a deviation of the unit processor, and a program that can be executed only on a specified unit processor among the unit processors.
  • a processor allocation step is a program for causing a computer to execute a multiprocessor system control method applied to a multiprocessor system including a plurality of unit processors.
  • the first request that is an execution request of a program that can be executed even if the unit processor is! /, Or a deviation of the unit processor, and a
  • FIG. 1 is a diagram for explaining a general configuration example relating to a combination of a plurality of unit processors.
  • FIG. 2 is a diagram for explaining a multiprocessor according to an embodiment of the present invention.
  • FIG. 3 is a diagram for explaining the operation of the unit processor shown in FIG. 2.
  • FIG. 4 is a diagram for explaining interrupt processing performed by the multiprocessor of the present embodiment.
  • FIG. 5 is another diagram for explaining interrupt processing performed by the multiprocessor of the present embodiment.
  • FIG. 6 is another diagram for explaining interrupt processing performed by the multiprocessor of the present embodiment.
  • FIG. 7 is another diagram for explaining interrupt processing performed by the multiprocessor of the present embodiment.
  • FIG. 8 is a flowchart for explaining an operation when a static task and a dynamic task are processed by the OS according to the embodiment of the present invention.
  • FIG. 9 is another flowchart for explaining an operation when processing a static task and a dynamic task by the OS according to the embodiment of the present invention.
  • FIG. 10 is another flowchart for explaining an operation when processing a static task and a dynamic task by the OS according to the embodiment of the present invention.
  • FIG. 11 is a flowchart for explaining an operation when processing a static interrupt and a dynamic interrupt by an external interrupt according to an embodiment of the present invention.
  • FIG. 12 is another flowchart for explaining the operation when processing a static interrupt and a dynamic interrupt by an external interrupt according to an embodiment of the present invention.
  • FIG. 1 is a diagram for explaining a general configuration example related to a combination of a plurality of unit processors.
  • FIG. The multiprocessor systems shown in Fig. 1 (a) and (b) are both configured by combining multiple unit processors Pu so as to share memory.
  • the configuration shown in (a) is called a multiprocessor, and the configuration shown in (b) is called a multithreaded processor.
  • the multi-thread processor shares the arithmetic unit more than the multi-processor, and the unit processor Pu is tightly coupled in that respect.
  • a plurality of unit processor Pu power memories 101 are shared, and an OS (Operating System) 1 is stored in the memory 101.
  • OS1 controls interrupts of tasks and interrupt handlers in the multiprocessor system of this embodiment.
  • the multiprocessor system is configured as a multiprocessor.
  • the multiprocessor system can be configured even if a multithread processor is employed.
  • FIG. 2 is a diagram for explaining a multiprocessor according to an embodiment of the present invention.
  • the illustrated multiprocessor includes a plurality of unit processors P0 to P3 and an interrupt control unit 201 that controls interrupt processing to the unit processors P0 to P3, and interrupt processing is performed on the unit processors P0 to P3 via the interrupt control unit 201.
  • Connect to 5 peripheral devices A, B, C, D, E peripheral device D is IZF of external memory.
  • Such a multiprocessor is applied to, for example, an embedded processor used in a mobile phone.
  • the peripheral devices A to D correspond to operation buttons, camera devices, and wireless devices.
  • the unit processors P0 to P3 have a status register (PSR) 210 that stores the status of each unit processor (for example, whether an interrupt is possible, whether an overflow has occurred in the unit processor, etc.).
  • a program counter (PC) 211 for storing a memory address in which an instruction is stored is provided.
  • the unit processors P0 to P3 further include an exception processing program counter (EPC) 212, an exception processing status register (EPSR) 213, and an interrupt vector (IntVector) 214.
  • the EPC 212 is a register for saving the address stored in the PC 211 when an interrupt is requested by the peripheral devices A to D.
  • the EPSR 213 saves the information stored in the PSR 210. It is a register for storing. IntVector2 14 also displays the address of the branch destination program according to the type of interrupt processing in a table format. It is something to remember.
  • the interrupt control unit 201 includes an interrupt signal receiving unit 2 for each of the peripheral devices A to D.
  • the first request is a task execution request that is generally called a dynamic task.
  • a request due to an interrupt is referred to as a dynamic interrupt.
  • the second request is a task execution request generally called a static task.
  • a request due to an interrupt is referred to as a static interrupt.
  • non-task interrupt processing is referred to as an interrupt handler.
  • non-task interrupt processing is also referred to as an interrupt handler. Both static and dynamic interrupts are interrupt node and error.
  • the four interrupt signal receiving units 2 shown in the figure are all configured in the same manner (therefore, the interrupt signal receiving unit 2 of the peripheral device A will be described here). That is, the interrupt signal accepting unit 2 includes an interrupt priority control unit 206a that accepts an interrupt signal output from the peripheral device A, an interrupt permission control unit 205a, and a static Z dynamic setting unit 204a.
  • the interrupt signal is a signal for peripheral device A to request the multiprocessor to execute interrupt processing.
  • the interrupt priority control unit 206a is configured to set the interrupt priority according to the content of the interrupt signal.
  • the interrupt permission control unit 205a is configured to determine whether or not the peripheral device A is permitted to permit an interrupt request based on the setting of prohibition of external interrupt for the entire multiprocessor.
  • the static Z dynamic setting unit 204a is configured to identify whether the processing request by the interrupt signal of the interrupt handler is a force dynamic interrupt that is a static interrupt, and to send the result to the interrupt control side.
  • Static Z dynamic setting section 204a to 204 d is a definition register that exists for each interrupt handler. For example, the following registers are assumed.
  • the unit processor assigned to interrupt execution is preset by the peripheral device that requested the interrupt.
  • the static / dynamic setting unit 204a that generates information for specifying the unit processor serves as an allocation unit processor setting unit that presets information for specifying the unit processor to be allocated to the static interrupt.
  • the setting of the static Z dynamic setting unit 204a is specified by the initialization processing of the multiprocessor. Taking / z ITRON (registered trademark) as an example, there is a system call (DEF_INH) as the definition of each interrupt handler. By extending this system call, the unit processor is set in the static definition register (IO register).
  • IO register static definition register
  • the interrupt control unit 201 includes four static interrupt priority determination units 203a, 203b, 203c, and 203d corresponding to each of the four processors ⁇ 0 to ⁇ 3, and a dynamic interrupt priority determination unit 207. Yes.
  • the static interrupt priority determination units 203a to 203d accept a request for a static interrupt that can be executed only by a specified unit processor among the unit processors P0 to P3.
  • the dynamic interrupt priority determination unit 207 accepts a dynamic interrupt request that can be executed regardless of any of the unit processors P0 to P3.
  • Such static interrupt priority determination units 203a to 203d and dynamic interrupt priority determination unit 207 constitute request reception means of the present embodiment.
  • the static interrupt priority determination units 203a to 203d and the dynamic interrupt priority determination unit 207 are registers that manage the priority of processing performed by the corresponding processor.
  • the contents of this register can be assumed as follows, for example.
  • bit6 Indicates the processor status. (RUN [1] ZHALT [0]) bit4 In the RUN state, indicates the status of interrupt [1] Z task execution [0].
  • bit3 to 0 In RUN state indicates the priority of the task in RUN state.
  • OS 1 assigns the static task request and the dynamic task request accepted this time to the unit processors P0 to P3.
  • the unit processor assigned to the static task and dynamic task is selected according to the priority of OS1 static and dynamic task requests.
  • OS1 is currently processed by the static interrupt priority determination units 203a to 203d and the dynamic interrupt priority determination unit 207, and the priority of the processing that has occurred this time is currently processed based on the information Select the unit processor by comparing with the priority of the task and interrupt handler.
  • Such an OS 1 serves as a unit processor allocation unit of the present embodiment.
  • OS1 requests execution of static tasks and dynamic tasks from the unit processors P0 to P3.
  • the task may be an interrupt process executed by interrupting another task. Details of unit processor selection by OS 1 will be described later.
  • the unit processors P0 to P3 read instructions from an external memory (not shown) and process them for each task. There are two types of tasks: static tasks that can be executed only by the specified unit processor among the unit processors P0 to P3, and dynamic tasks that can be executed by any of the unit processors.
  • peripheral devices A to E perform interrupt processing and request processing necessary for each.
  • the request for processing is performed by each of the peripheral devices A to D outputting to the interrupt signal receiving unit 2 information for identifying the own device, information indicating task processing contents, and the like.
  • the interrupt signal receiving unit 2 to which the interrupt signal is input generates a signal indicating the priority of the interrupt handler, whether static or dynamic based on the interrupt signal.
  • the generated signal is sent to the static interrupt priority determination unit 203a and the dynamic interrupt priority determination unit 207.
  • Static interrupt priority determination unit 203a-c The task and interrupt handler priorities currently running on that processor.
  • the dynamic interrupt priority determination unit 207 determines the priority of tasks and interrupt handlers that operate on all processors when a dynamic interrupt is requested. Based on the determination results of the static interrupt priority determination units 203a to 203c and the dynamic interrupt priority determination unit 207, the interrupt processing processor selection unit 202 determines a unit processor that executes interrupt processing.
  • the interrupt processor selection unit 202 compares the priorities between the static interrupt and the dynamic interrupt, and assigns the static interrupt and the dynamic interrupt to one unit processor (for example, the unit processor PO). With this configuration, this embodiment can introduce the concept of a static task to parallel processing even when a function-distributed OS is diverted.
  • the unit processor assigned to a dynamic task is determined by OS1 when the task is executed. For this reason, in this embodiment, it also functions as OS1 power allocation unit processor determination means.
  • the OS 1 generates a task execution schedule based on the priority of the dynamic task and the static task executed as processing other than the interrupt handler.
  • the task execution schedule is represented, for example, by a ready queue in which tasks executed in each unit processor are recorded in order of execution.
  • Each unit processor of the present embodiment described above operates as shown in FIG. 3, for example.
  • the processing part represented by notation such as Dynamic-a is a dynamic task, and an interrupt is performed. Indicates something that is not a handler.
  • the processing part represented by notation such as Dynamic-IntA is a dynamic interrupt and indicates a process executed as an interrupt handler.
  • the processing part represented by the notation “Static—a” is a static task and not an interrupt handler.
  • the processing part expressed by notation such as Static-IntA is a static interrupt and indicates the process executed as an interrupt handler.
  • the number following Static in the static task indicates the fixed unit processor. (Static-1 is assigned to unit processor P0, Static-2 is assigned to unit processor Pl, Static-3 is assigned to unit processor P2, and Static-4 is assigned to unit processor P3).
  • 4 to 7 are diagrams for explaining task processing performed by the multiprocessor of this embodiment.
  • unit processor P0 executes a dynamic task with priority 5
  • unit processor P1 executes a dynamic task with priority 6
  • unit processor P2 executes a dynamic task with priority 7.
  • the unit processor P3 is executing a static task with a priority of 8. In FIGS. 4 to 7, the task priority is higher as the number is lower.
  • OS1 when any task makes a request for a dynamic task with priority 5, OS1 operates as follows. That is, the OS 1 executes the lowest priority among the tasks currently executed by the unit processors P0 to P3, and detects that the unit processor is the unit processor P3.
  • OS1 determines whether the task requested this time or the task executed by the unit processor P3 is static or dynamic.
  • the task executed by the unit processor P3 is a static task, and the task requested this time is a dynamic task.
  • unit processor P0 executes a dynamic task with priority 5
  • unit processor P1 executes a dynamic task with priority 6
  • unit processor P2 executes a dynamic task with priority 7.
  • Unit processor P3 is executing a static task with a priority of 7.
  • OS1 determines whether the task requested this time or the task executed by the unit processor P3 is static or dynamic. In the example shown in Fig. 5, no task has a lower priority than the task requested this time. Further, it is detected that the priority currently being executed by the unit processor P3 is equal, the task is a static task, and the requested task is a dynamic task.
  • the static task is executed in preference to the dynamic task in principle. Also, if the processing executed previously and the priority of the processing requested this time are equal, the task switch is not performed according to the ⁇ ITRON (registered trademark) specification. In the example shown in Fig. 5, the priority of the dynamic task is equal to the priority of the static task, so the task execution in the unit processor ⁇ 3 is continued and the newly requested task is moved to the execution state. (Add to the ready queue)!
  • static allocation is prioritized over dynamic allocation for unit processors capable of executing static allocation. In this way, it is possible to prevent static interrupt delay while executing high priority interrupt processing.
  • static tasks are processed in preference to dynamic tasks when the priorities are equal.
  • the present invention is not limited to such a configuration, and when a dynamic task and a static task compete on one processor, the static task may always be given priority.
  • unit processor ⁇ executes a dynamic task with priority 5
  • unit processor P1 executes a dynamic task with priority 6
  • unit processor ⁇ 2 performs a dynamic task with priority 7.
  • Unit processor ⁇ 3 is executing a static task with a priority of 7.
  • OS1 determines the priority of the task currently being executed on unit processor ⁇ 2. Compare the task priority requested this time [0036] In the example shown in FIG. 6, since the priority of the task requested this time is currently executed by the unit processor P2, it is higher than the priority of the task to be executed. Instead of the task, the newly requested task is executed by the unit processor P2. In the example shown in FIG. 7, the unit processor PO executes a priority 5 dynamic task, the unit processor P1 executes a priority 6 dynamic task, and the unit processor P2 executes a priority 7 dynamic task. Unit processor P3 is executing a static task with a priority of 7.
  • OS1 determines the task currently being executed on the unit processor P1. Compare the priority with the priority of the task of the interrupt requested this time.
  • FIG. 8 is a flowchart for explaining the operation when processing a static task and a dynamic task by OS 1.
  • OS1 assumes that a new task has occurred, and registers this task in the ready' queue (S801).
  • the ready 'queue registration condition indicates, for example, that a send' message is executed by one of the unit processors P0 to P3.
  • OS1 determines whether the registered task is a force static task that is a dynamic task (S802). If the task is a static task (Static task), it is determined whether or not the unit processor previously assigned to the task is in HALT (S803). If the unit processor is in the HALT state (S803: Yes), an internal interrupt request is generated for the unit processor assigned to the task (S807), and it waits until the start of the unit processor requested for the internal interrupt is completed ( S808). After the start of the unit processor, the unit processor returns from the OS processing (OS processing) and executes the task. Return to processing.
  • OS processing OS processing
  • step S802 if it is determined in step S802 that the task is a dynamic task (Dynamic task), the processing shown in the flowchart of FIG. 9 is started. That is, as shown in the flowchart of FIG. 9, OS1 determines whether there is a unit processor in HALT in the multiprocessor (S901). If there is a unit processor in HALT (S9001: Yes), OS1 generates an internal interrupt request for this unit processor (S905). Then, it waits until the start of the unit processor requested for the internal interrupt is completed (S906).
  • OS1 determines whether there is a unit processor in HALT in the multiprocessor (S901). If there is a unit processor in HALT (S9001: Yes), OS1 generates an internal interrupt request for this unit processor (S905). Then, it waits until the start of the unit processor requested for the internal interrupt is completed (S906).
  • step S901 If it is determined in step S901 that there is no unit processor in HALT! / (S 901: No), the tasks executed by all of the unit processors P0 to P3 And the priority of the task requested to be interrupted this time (S902). As a result, if all currently executed tasks have a higher priority than the task requested this time (S903: No), the process returns to the task process without generating a task switch.
  • a task switch is generated (S903: Yes). After the task switch is generated, the OS 1 executes a general task switch common process performed along with the task switch (S904).
  • OS1 determines the priority of the task currently being executed by this unit processor and the task requested this time. The priority is compared (S804). As a result, if the currently executed task has a higher priority than the task requested this time (S805: No), the process returns to the task process without generating a task switch.
  • a task switch is generated (S805: Yes). After the task switch is generated, the OS 1 executes a general task switch common process performed in accordance with the task switch (S806).
  • FIG. 10 is a flowchart for explaining the task switch common processing shown in FIGS. 8 and 9.
  • Task switch common processing is a unit processor when a task switch occurs. All of P0 to P3 are executed. First, the unit processors PO to P3 search for and specify a unit processor that executes the task switch (S1001). As a result of the search, if the unit processor that performs task switching is its own processor, replacement processing such as saving of data related to the currently executing task is executed (S1005). Then, the task is transferred to the task to be processed after the switch (S1006).
  • step S1002 if it is determined in step S1002 that the unit processor to be task-switched is another unit processor (S1002: No), interrupt processing occurs in the other processor to be task-switched. (S1003).
  • the unit processor that has become the target of the task switch this time waits for the task replacement process of the unit processor to be task switched (S1004), returns from the OS process, and returns to the task process.
  • FIG. 11 is a flowchart for explaining an operation when the interrupt control unit 201 processes a static interrupt and a dynamic interrupt.
  • the interrupt control unit 201 determines whether the generated external interrupt is a dynamic interrupt or a static interrupt (S1101). If it is determined that the interrupt handler is S static interrupt (S 1101: Static interrupt), the priority of the task and interrupt handler being executed by the unit processor (specified unit processor) assigned to the static interrupt The priority of the interrupt handler of the static interrupt requested this time is compared (S1102).
  • the specified unit processor uses information (PSR210, PC211) related to the previously executed processing. Evacuate (S1104). After saving the information, the interrupt control unit 201 causes the designated unit processor to generate an external interrupt (S1105).
  • the interrupt controller 201 holds the current interrupt request (S1106).
  • the interrupt control unit 201 determines that the generated external interrupt is a dynamic interrupt (Dynamic interrupt)
  • the interrupt control unit 201 executes the processing shown in the flowchart of FIG. In other words, the interrupt control unit 201 performs HALT during the unit processor provided in the multiprocessor. It is searched whether there is any unit processor (S1201). If there is a unit processor in HALT as a result of this search (S1202: Yes), an external interrupt is generated for this unit processor (1208).
  • step S1202 If it is determined in step S1202 that there is no unit processor in HALT (S1202: No), the priority of tasks and interrupt handlers executed by all unit processors P0 to P3 And the priority requested to be interrupted this time. Then, it is determined whether or not a task and interrupt handler having a lower priority than the task priority of the external interrupt generated this time are not executed (S 1203). As a result, if the corresponding unit processor does not exist (S 1204: No), the external interrupt generated this time is suspended (S 1207).
  • a program for causing a computer to execute the control method of the multiprocessor system of this embodiment described in FIGS. 8 to 12 is a file in an installable or executable format, such as a CD-ROM, floppy ( It is recorded on a computer readable recording medium such as a registered trademark (FD) or DVD.
  • a program for causing a computer to execute the control method of the multiprocessor system of the present embodiment is stored on a computer connected to a network such as the Internet, and is provided by being downloaded via the network. You may do it.
  • a program for causing a computer to execute the control method of the multiprocessor system of the present embodiment described above is a computer-readable ROM, flash memory, memory card, USB-connected flash memory, or the like. Provide it recorded in a memory device.
  • the unit processor Specified unit processor among dynamic tasks and dynamic interrupts that can be executed at all It can accept static tasks and static interrupts that can only be executed in. Then, each accepted process can be assigned to the unit processors PO to P3 according to the priority of the task and interrupt handler.
  • the first request which is an execution request of a program that can be executed even if there is a difference between unit processors, and the program that can be executed only in a specified unit processor among the unit processors.
  • a second request that is an execution request can be accepted. Then, the accepted first request and second request can be assigned to the multiprocessor unit processor according to the priority of the first request and the second request.
  • the present invention adds a configuration that assigns to the multiprocessor unit processor according to the priority of the first request and the second request, thereby diverting the resources of the program such as the OS of the conventional function distributed processor. It is possible to provide a multiprocessor system that can perform parallel processing in consideration of whether the unit processor of a task is fixed or not.
  • the second request that cannot be allocated to other unit processors is given priority, and the processing of the second request is larger than the first request. Can be prevented from being delayed.
  • the process of dynamically allocating the first request to the unit processor can be executed flexibly.
  • the unit processor can be set in advance for the second request fixed to the unit processor. This eliminates the process of selecting a unit processor when an interrupt occurs, thus improving the efficiency of the interrupt process.
  • parallel processing in units of tasks can be executed smoothly. Also, according to the present invention, parallel processing can be executed smoothly even when interrupt processing such as an external interrupt occurs. be able to.
  • the multiprocessor is in accordance with the priority of the first request and the second request.
  • a multiprocessor capable of parallel processing that considers whether the unit processor of the task is fixed or unfixed even if the assets of the program such as the OS of the conventional function distributed processor are diverted
  • a program for causing a computer to execute the system control method can be provided.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

 従来の機能分散型プロセッサのOS等プログラムの資産を流用しながらタスクの単位プロセッサの固定、非固定をも考慮した並列処理が可能なマルチプロセッサシステムを提供する。複数の単位プロセッサを備えたマルチプロセッサシステムにおいて、割込み信号受付部2によって受付けられたダイナミック割込み要求及びスタティック割込み要求を、ダイナミック割込み要求及びスタティック割込み要求の優先度にしたがって単位プロセッサP0~P3に割り当てるOS1及び割込み制御部201を設ける。

Description

明 細 書
マルチプロセッサシステム、マルチプロセッサシステムの制御方法をコン ピュータに実行させるためのプログラム
技術分野
[0001] 本発明は、マルチプロセッサシステム及びマルチプロセッサシステムの制御方法を コンピュータに実行させるためのプログラムに係り、特にタスクを円滑に並列処理可 能なマルチプロセッサシステム及びマルチプロセッサシステムの制御方法をコンビュ ータに実行させるためのプログラムに関する。
背景技術
[0002] 特定の装置に用いられるプロセッサは、組込みシステムと呼ばれて!/、る。近年では 、組込みシステムにマルチプロセッサやマルチスレッドプロセッサが採用されることも 多い。マルチプロセッサの採用は、装置の低クロック化や応答性の向上に有利である
。また、特に携帯型の装置では、消費電力を低減することにも有利であるためマルチ プロセッサを採用することが望まれて 、る。
ところで、新たに開発したプロセッサが正常に動作する力否かの判断に時間及びコ ストが係る。このため、ソフトウェアの分野では、使用した結果実績のあるプロセッサが 流用可能であるならば、これを流用することが望ましいとされている。したがって、組 込みシステムをマルチプロセッサ化する場合、
Figure imgf000003_0001
、たシングルプロセッ サのソフトウェアを流用する要求がある。
[0003] シングルプロセッサ (機能分散型プロセッサ)のソフトウェアをマルチプロセッサに流 用する従来技術として、例えば、特許文献 1がある。特許文献 1の発明は、 /z ITRO N (登録商標)をベースにした機能分散型プロセッサ用の OS (Operating System)を マルチプロセッサに移植するものである。特許文献 1の発明は、機能分散型プロセッ サにおいて OSを呼び出すためのシステムコールが発行される間にもシステムコール の発行が不要な割込み処理を受付けることにより、緊急性の高 、割込み処理を優先 的に処理するものである。
特許文献 1 :特開平 8— 297581号公報 ところで、上記したように、マルチプロセッサ を機能分散型のオペレーティングシステムのみで動作させた場合、複数のプロセッサ を並列的に動作させることが困難である。一方、マルチプロセッサを SMP (Symmetric Multi Processor)型プロセッサ用の OSのみで動作させるとすると、シングルプロセッ サの資産であるアプリケーションの移植作業の作業量が膨大になるという欠点がある
[0004] また、組込み装置のマルチプロセッサでは、マルチプロセッサに機能や特徴の相違 するプロセッサ(単位プロセッサ)を複数設け、特定のタスクを所定の単位プロセッサ に割り当てることがある。なお、特定の単位プロセッサでのみ実行される(単位プロセ ッサに固定される)タスクをスタティックタスク、いずれの単位プロセッサにも割り当てら れるタスク(単位プロセッサ非固定)をダイナミックタスクという。し力しながら、特許文 献 1に記載された発明は、単に機能分散型 OSをマルチプロセッサに流用するもので あるから、マルチプロセッサのスタティックタスクの並列処理における扱!、を考慮した ものではない。
[0005] 本発明は、このような点に鑑みてなされたものであり、従来の機能分散型プロセッサ の OS等プログラムの資産を流用しながらタスクの単位プロセッサの固定、非固定をも 考慮した並列処理が可能なマルチプロセッサシステム、マルチプロセッサシステムの 制御方法をコンピュータに実行させるためのプログラムを提供することを目的とする。 発明の開示
[0006] 本発明によるマルチプロセッサシステムは、複数の単位プロセッサを備えたマルチ プロセッサシステムであって、前記単位プロセッサの 、ずれにお 、ても実行可能なプ ログラムの実行要求である第 1要求及び前記単位プロセッサのうち指定された単位プ 口セッサにおいてのみ実行可能なプログラムの実行要求である第 2要求を受付ける 要求受付手段と、前記要求受付手段によって受付けられた第 1要求及び第 2要求を 、第 1要求、第 2要求の優先度にしたがって前記単位プロセッサに割り当てる単位プ 口セッサ割当手段と、を備えることを特徴とする。
[0007] また、本発明のマルチプロセッサシステムは、前記単位プロセッサ割当手段力 第 1 要求と第 2要求との間で優先度を比較して一の前記単位プロセッサに第 1要求と第 2 要求とを割り当てることを特徴とする。 また、本発明のマルチプロセッサシステムは、前記単位プロセッサ割当手段力 単 位プロセッサに対し、第 1要求よりも第 2要求を優先して割り当てることを特徴とする。 また、本発明のマルチプロセッサシステムは、前記第 1要求に割り当てられる単位プ 口セッサを、第 1要求の実行時に決定する割当単位プロセッサ決定手段を備えること を特徴とする。
[0008] また、本発明のマルチプロセッサシステムは、前記第 2要求に割り当てられる単位プ 口セッサを予め設定する割当単位プロセッサ設定手段を備えることを特徴とする。 また、本発明のマルチプロセッサシステムは、前記単位プロセッサ割当手段力 前 記単位プロセッサにタスク実行の要求を割り当てることを特徴とする。
また、本発明のマルチプロセッサシステムは、前記単位プロセッサ割当手段力 前 記単位プロセッサに、他のタスクの中断を要求する割込み処理の実行要求を割り当 てることを特徴とする。
[0009] また、本発明のマルチプロセッサシステム制御方法をコンピュータに実行させるた めのプログラムは、複数の単位プロセッサを備えたマルチプロセッサシステムに適用 されるマルチプロセッサシステム制御方法をコンピュータに実行させるためのプロダラ ムであって、前記単位プロセッサの!/、ずれにお 、ても実行可能なプログラムの実行 要求である第 1要求及び前記単位プロセッサのうち指定された単位プロセッサにおい てのみ実行可能なプログラムの実行要求を受付ける第 2要求を受付ける要求受付ス テツプと、前記要求ステップにおいて受付けられた第 1要求及び第 2要求を、第 1要 求、第 2要求の優先度にしたがって前記単位プロセッサに割り当てる単位プロセッサ 割当ステップと、を含むことを特徴とする。
図面の簡単な説明
[0010] [図 1]複数の単位プロセッサの組合せに係る一般的な構成例を説明するための図で ある。
[図 2]本発明の一実施形態のマルチプロセッサを説明するための図である。
[図 3]図 2に示した単位プロセッサの動作を説明するための図である。
[図 4]本実施形態のマルチプロセッサで行われる割込み処理を説明するための図で ある。 [図 5]本実施形態のマルチプロセッサで行われる割込み処理を説明するための他の 図である。
[図 6]本実施形態のマルチプロセッサで行われる割込み処理を説明するための他の 図である。
[図 7]本実施形態のマルチプロセッサで行われる割込み処理を説明するための他の 図である。
[図 8]本発明の一実施形態の OSによるスタティックタスク、ダイナミックタスクを処理す る際の動作を説明するためのフローチャートである。
[図 9]本発明の一実施形態の OSによるスタティックタスク、ダイナミックタスクを処理す る際の動作を説明するための他のフローチャートである。
[図 10]本発明の一実施形態の OSによるスタティックタスク、ダイナミックタスクを処理 する際の動作を説明するための他のフローチャートである。
[図 11]本発明の一実施形態の外部割込みによるスタティック割込み、ダイナミック割 込みを処理する際の動作を説明するためのフローチャートである。
[図 12]本発明の一実施形態の外部割込みによるスタティック割込み、ダイナミック割 込みを処理する際の動作を説明するための他のフローチャートである。
符号の説明
[0011] 1 OS, 2 割込み信号受付部、 201 割込み制御部、 202 処理プロセッサ選択部 、 203a, 203b, 203c, 203d 優先度判定部、 204a, 204b, 204c, 204d ダイナ ミック設定部、 205a 割込み許可制御部、 206a, 206b, 206c, 206d 優先度制御 部、 207 ダイナミック割込み優先度判定部、 A、 B、 C、 D、 E 周辺装置、 P0、 Pl、 P2、 P3 単位プロセッサ
発明を実施するための最良の形態
[0012] 以下、図を参照して本発明に係るマルチプロセッサシステム、マルチプロセッサシス テムの制御方法をコンピュータに実行させるためのプログラムの実施の形態を説明す る。本実施形態のマルチプロセッサシステムは、複数の単位プロセッサを備えている 図 1は、複数の単位プロセッサの組合せに係る一般的な構成例を説明するための 図である。図 1 (a)、(b)に示したマルチプロセッサシステムは、いずれも複数の単位 プロセッサ Puを、メモリを共有するように結合して構成されている。 (a)に示した構成 は、マルチプロセッサと呼ばれている構成であって、(b)に示した構成はマルチスレツ ドプロセッサと呼ばれている。マルチスレッドプロセッサは、マルチプロセッサよりも演 算器を共有して 、る点で単位プロセッサ Puは密に結合して 、ると 、う。
[0013] 図 1に示したマルチプロセッサ、マルチスレッドプロセッサのいずれにあっても、複 数の単位プロセッサ Pu力メモリ 101を共用し、メモリ 101には OS (Operating System) 1が保存されている。 OS1は、本実施形態のマルチプロセッサシステムにおいてタス ク及び割込みハンドラの割込みを制御するものである。
なお、本実施形態では、マルチプロセッサシステムをマルチプロセッサとして構成し た例にっ 、て説明するが、マルチスレッドプロセッサを採用しても構成可能である。
[0014] 図 2は、本発明の一実施形態のマルチプロセッサを説明するための図である。図示 したマルチプロセッサは、複数の単位プロセッサ P0〜P3と、単位プロセッサ P0〜P3 への割込み処理を制御する割込み制御部 201とを備え、割込み制御部 201を介し て単位プロセッサ P0〜P3に割込み処理を要求する 5つの周辺装置 A、 B、 C、 D、 E (周辺装置 Dは外部メモリの IZF)と接続する。このようなマルチプロセッサは、例えば 携帯電話に使用される組込みプロセッサに適用される。携帯電話に適用される場合 、周辺装置 A〜Dは、操作ボタンやカメラ装置、無線装置にあたる。
[0015] 単位プロセッサ P0〜P3は、各単位プロセッサのステータス(例えば、割込みの可否 状態、単位プロセッサにおけるオーバーフローの発生状態等)を記憶するステータス レジスタ(PSR) 210、単位プロセッサが次に実行するべき命令が格納されたメモリア ドレスを記憶するプログラムカウンタ(PC) 211を備えて 、る。
さらに、単位プロセッサ P0〜P3は、例外処理用プログラムカウンタ(EPC) 212、例 外処理用ステータスレジスタ(EPSR) 213、割り込みベクタ(IntVector) 214を備え ている。 EPC212は、周辺装置 A〜Dによって割込みが要求された場合に PC211に 記憶されているアドレスを退避しておくためのレジスタであって、 EPSR213は、 PSR 210に記憶されている情報を退避しておくためのレジスタである。また、 IntVector2 14は、割込み処理の種類に応じた分岐先のプログラムのアドレスをテーブル形式で 記憶するものである。
[0016] 割込み制御部 201は、周辺装置 A〜Dの各々について、割込み信号受付部 2を備 えている。第 1要求は、一般的にダイナミックタスクと呼ばれるタスクの実行要求を指 す。割込みによる要求を本実施形態ではダイナミック割込みと記す。また、第 2要求 は、一般的にスタティックタスクと呼ばれるタスクの実行要求を指す。割込みによる要 求を本実施形態ではスタティック割込みと記す。また、本実施形態では、 OS 1が作成 するスケジューラ等によって管理されるタスクと外部から要求されるために OS 1によつ て管理できない非タスクとがある。本実施形態では、非タスクの割込み処理を割込み ハンドラと記す。
[0017] なお、上記したダイナミックタスク、スタティックタスクのタスクは、プログラムの処理単 位を指していう場合も多い。しかし、本実施形態では、 OS 1が作成するスケジューラ 等によって管理される処理のみをタスクと記し、外部から要求されるために OS1によ つて管理できない処理を非タスクと記す。本実施形態では、非タスクの割込み処理を 割込みハンドラとも記す。スタティック割込み、ダイナミック割込みは、いずれも割込み ノヽンド、ラである。
[0018] 図示した 4つの割込み信号受付部 2は、いずれも同様に構成されている(このため、 ここでは周辺装置 Aの割込み信号受付部 2について説明する)。すなわち、割込み 信号受付部 2は、周辺装置 Aが出力した割込み信号を受付ける割込み優先度制御 部 206a、割込み許可制御部 205a、スタティック Zダイナミック設定部 204aを備えて いる。
割込み信号は、周辺装置 Aがマルチプロセッサに対して割込み処理の実行を要求 するための信号である。割込み優先度制御部 206aは、割込み信号の内容に応じて 割込みの優先度を設定する構成である。割込み許可制御部 205aは、マルチプロセ ッサ全体に対する外部割込み禁止の設定等から周辺装置 Aの割込み要求を許可す る力否か判定する構成である。
[0019] また、スタティック Zダイナミック設定部 204aは、割込みハンドラの割込み信号によ る処理要求にスタティック割込みである力ダイナミック割込みであるか特定し、この結 果を割込み制御側に送る構成である。スタティック Zダイナミック設定部 204a〜204 dは、割込みハンドラごとに存在する定義レジスタであって、例えば、以下のようなレジ スタを想定している。
bit4 スタティック割込み [0]Zダイナミック割込み [1]
bit3〜0 スタティック割込みの場合に実行される単位プロセッサ番号
なお、スタティック割込みの場合、割込み実行に割り当てられる単位プロセッサは、 割込みを要求した周辺装置によって予め設定されている。この単位プロセッサを特定 する情報を生成するスタティック/ダイナミック設定部 204aは、スタティック割込みに 割り当てられる単位プロセッサを特定する情報を予め設定する割当単位プロセッサ 設定手段となる。
[0020] スタティック Zダイナミック設定部 204aの設定は、マルチプロセッサの初期化の処 理によって指定される。 /z ITRON (登録商標)を例にとると、各割込みハンドラの定 義としてシステムコール(DEF_INH)が存在する。このシステムコールを拡張するこ とにより、スタティック定義レジスタ (IOレジスタ)に単位プロセッサを設定する。
なお、ダイナミックタスク、スタティックタスクの判断は、 μ ITRON (登録商標)におい てタスク生成のシステムコール CRE—TSKを拡張することによって実現される。
[0021] また、割込み制御部 201は、 4つのプロセッサ Ρ0〜Ρ3の各々に対応した 4つのスタ ティック割込み優先度判定部 203a、 203b, 203c, 203dと、ダイナミック割込み優先 度判定部 207を備えている。
スタティック割込み優先度判定部 203a〜203dは、単位プロセッサ P0〜P3のうち 指定された単位プロセッサにおいてのみ実行可能なスタティック割込みの要求を受 付ける。また、ダイナミック割込み優先度判定部 207は、単位プロセッサ P0〜P3のい ずれにぉ ヽても実行可能なダイナミック割込みの要求を受付ける。このようなスタティ ック割込み優先度判定部 203a〜203d及びダイナミック割込み優先度判定部 207は 、本実施形態の要求受付手段を構成する。
[0022] スタティック割込み優先度判定部 203a〜203d、ダイナミック割込み優先度判定部 207は、対応するプロセッサで実行されて 、る処理の優先度を管理するレジスタであ る。このレジスタの内容としては、例えば、以下のように想定できる。
bit6 プロセッサの状態を表す。 (RUN[1]ZHALT[0]) bit4 RUN状態の場合、割込み [ 1 ] Zタスク実行 [0]の状態を表す。
bit3〜0 RUN状態の場合、 RUN状態のタスクの優先度を表す。
[0023] レジスタへの書込みは、ソフトウェアによって行われる。
OS 1は、今回受付けられたスタティックタスクの要求及びダイナミックタスクの要求を 単位プロセッサ P0〜P3に割り当てる。スタティックタスク、ダイナミックタスクに割り当 てられる単位プロセッサの選択は、 OS1力 スタティックタスク、ダイナミックタスクの要 求の優先度にしたがって行う。
すなわち、 OS1は、スタティック割込み優先度判定部 203a〜203d、ダイナミック割 込み優先度判定部 207で管理されて 、る情報に基づ 、て、今回発生した処理の優 先度を現在処理されているタスク及び割込みハンドラの優先度と比較して単位プロセ ッサを選択する。このような OS 1は、本実施形態の単位プロセッサ割当手段となる。 OS1は、単位プロセッサ P0〜P3にスタティックタスク及びダイナミックタスクの実行要 求をする。タスクは、他のタスクを中断して実行される割込み処理である場合もある。 なお、 OS 1による単位プロセッサの選択の詳細については後述するものとする。
[0024] 次に、図 2に示した構成の動作について説明する。
単位プロセッサ P0〜P3は、図示しない外部メモリ等から命令を読出し、タスクごと に処理している。タスクには、単位プロセッサ P0〜P3のうち指定された単位プロセッ サにおいてのみ実行されるスタティックタスクと複数の単位プロセッサのいずれにお Vヽても実行可能なダイナミックタスクとがある。
このようなマルチプロセッサに対し、周辺装置 A〜Eは、割込み処理して各々に必 要な処理を要求する。処理の要求は、周辺装置 A〜Dの各々が、割込み信号受付 部 2に対して自装置を特定するための情報、タスクの処理内容等を示す情報を出力 すること〖こよって行われる。
[0025] 割込み信号が入力された割込み信号受付部 2は、割込み信号に基づいて割込み ハンドラの優先度やスタティック、ダイナミックの別を示す信号を生成する。そして、マ ルチプロセッサへの割込みが許可されて ヽる場合、生成された信号をスタティック割 込み優先度判定部 203a、ダイナミック割込み優先度判定部 207に送出する。
スタティック割込み優先度判定部 203a〜cは、送出された信号力スタティック割込 みを要求するものである場合、現在そのプロセッサで動作して 、るタスク及び割込み ハンドラの優先度を判定する。また、ダイナミック割込み優先度判定部 207は、ダイナ ミック割込みが要求された場合、全てのプロセッサで動作して ヽるタスク及び割込み ハンドラの優先度を判定する。割込み処理プロセッサ選択部 202は、スタティック割 込み優先度判定部 203a〜203c、ダイナミック割込み優先度判定部 207の判定結 果に基づ 、て、割込み処理を実行する単位プロセッサを決定する。
[0026] このような、割込み処理プロセッサ選択部 202は、スタティック割込みとダイナミック 割込みとの間で優先度を比較し、一の単位プロセッサ(例えば単位プロセッサ PO)に スタティック割込みとダイナミック割込みとを割り当てる。この構成により、本実施形態 は、機能分散型の OSを流用した場合にも並列処理にスタティックタスクの概念を導 人することができる。
なお、ダイナミックタスクに割り当てられる単位プロセッサは、 OS1によってタスクの 実行時に決定される。このため、本実施形態では、 OS1力 割当単位プロセッサ決 定手段としても機能する。
[0027] すなわち、 OS 1は、割込みハンドラ以外の処理として実行されるダイナミックタスク、 スタティックタスクの優先度に基づ 、てタスクの実行スケジュールを生成する。タスク の実行スケジュールは、例えば、各単位プロセッサにおいて実行されるタスクを実行 される順番に沿って並べて記録したレディ ·キューで表される。
以上述べた本実施形態の各単位プロセッサは、例えば図 3に示したように動作する 図 3に示した例では、 Dynamic— a等の表記で表した処理部分はダイナミックタスク であって、かつ割込みハンドラでないものを示す。また、 Dynamic— IntA等の表記 で表した処理部分はダイナミック割込みであって、かつ割込みハンドラとして実行され る処理を示す。
[0028] また、 Static— a等の表記で表した処理部分はスタティックタスクであって、かつ割 込みハンドラでないものを示す。また、 Static— IntA等の表記で表した処理部分は スタティック割込みであって、かつ割込みハンドラとして実行される処理を示す。さら に、スタティックタスクの Static の後に続く番号は、固定される単位プロセッサを示 している(Static— 1は単位プロセッサ P0、 Static— 2は単位プロセッサ Pl、 Static —3は単位プロセッサ P2、 Static— 4は単位プロセッサ P3に割り当てられることを示 す)。
[0029] 次に、本実施形態のマルチプロセッサの OS 1によって実行される処理を、より具体 的に説明する。図 4ないし図 7は、本実施形態のマルチプロセッサで行われるタスク 処理を説明するための図である。
図 4に示した例では、単位プロセッサ P0が優先度 5のダイナミックタスクを実行し、 単位プロセッサ P1が優先度 6のダイナミックタスクを実行し、単位プロセッサ P2が優 先度 7のダイナミックタスクを実行している。そして、単位プロセッサ P3は、優先度 8の スタティックタスクを実行している。なお、図 4〜図 7において、タスクの優先度は、数 字が少な 、ほど高 、ものとする。
[0030] このような状態において、いずれかのタスクが優先度 5のダイナミックタスクに対し要 求を行った場合、 OS1は、次のように動作する。すなわち、 OS1は、単位プロセッサ P0〜P3で現在実行されて 、るタスクのうち最も低 、優先度を実行して 、る単位プロ セッサが単位プロセッサ P3であることを検出する。
次に、 OS1は、今回要求されたタスク、単位プロセッサ P3で実行されているタスク のスタティック、ダイナミックの別を判定する。図 4に示した例では、単位プロセッサ P3 で実行されて ヽるタスクがスタティックタスクであって、今回要求されたタスクはダイナ ミックタスクである。
[0031] 図 4に示した例では、ダイナミックタスクの優先度がスタティックタスクの優先度よりも 高いことから、単位プロセッサ P3で実行されているタスクに代えて、新たに要求され たタスクを単位プロセッサ P3に実行させて!/、る。
図 5に示した例では、単位プロセッサ P0が優先度 5のダイナミックタスクを実行し、 単位プロセッサ P1が優先度 6のダイナミックタスクを実行し、単位プロセッサ P2が優 先度 7のダイナミックタスクを実行し、単位プロセッサ P3は、優先度 7のスタティックタ スクを実行している。
[0032] このような状態において、いずれかのタスクが優先度 7のダイナミックタスクに対し要 求を行った場合、 OS1は、単位プロセッサ P0〜P3で現在実行されているタスクのう ち今回要求されたタスクより優先度が低いタスクの有無を検出する。
次に、 OS1は、今回要求されたタスク、単位プロセッサ P3で実行されているタスク のスタティック、ダイナミックの別を判定する。図 5に示した例では、今回要求されたタ スクより優先度が低いタスクがない。また、現在単位プロセッサ P3で実行されている 優先度が等し 、タスクがスタティックタスクであって、要求されたタスクがダイナミツクタ スクであることを検出する。
[0033] このような場合、本実施形態では、スタティックタスクは原則ダイナミックタスクに優先 して実行される。また、先に実行されていた処理と今回要求された処理の優先度とが 等 、場合、タスクスィッチは行わな ヽのは、 μ ITRON (登録商標)の仕様である。 また、図 5に示した例では、ダイナミックタスクの優先度とスタティックタスクの優先度 とが等しいことから、単位プロセッサ Ρ3におけるタスクの実行を継続し、新たに要求さ れたタスクを実行状態に移す (レディ ·キューに追加する)ことがな!、。
[0034] このように処理することにより、本実施形態は、スタティック割当が実行可能な単位 プロセッサに対しては、ダイナミック割当よりもスタティック割当を優先して割り当てるよ うにする。このようにすれば、優先度の高い割込み処理を実行しながらスタティック割 込みの遅延を防ぐことができる。
なお、ここでは、優先度が等しいときダイナミックタスクに優先してスタティックタスク を処理するものとした。しかし、本発明はこのような構成に限定されるものでなぐダイ ナミックタスクとスタティックタスクとが 1のプロセッサ上で競合する場合、常にスタティッ クタスクを優先するものであってもよ 、。
[0035] 図 6に示した例では、単位プロセッサ ΡΟが優先度 5のダイナミックタスクを実行し、 単位プロセッサ P1が優先度 6のダイナミックタスクを実行し、単位プロセッサ Ρ2が優 先度 7のダイナミックタスクを実行し、単位プロセッサ Ρ3は、優先度 7のスタティックタ スクを実行している。
このような状態において、いずれかのタスク力 単位プロセッサ Ρ2でのみ動作可能 な優先度 5のスタティックタスクに対し要求を行った場合、 OS1は、単位プロセッサ Ρ2 で現在実行されているタスクの優先度と今回要求されたタスクの優先度とを比較する [0036] 図 6に示した例では、今回要求されたタスクの優先度が、現在単位プロセッサ P2で 実行されて 、るタスクの優先度より高 、ことから、単位プロセッサ P2で実行されて 、る タスクに代えて、新たに要求されたタスクを単位プロセッサ P2に実行させている。 図 7に示した例では、単位プロセッサ POが優先度 5のダイナミックタスクを実行し、 単位プロセッサ P1が優先度 6のダイナミックタスクを実行し、単位プロセッサ P2が優 先度 7のダイナミックタスクを実行し、単位プロセッサ P3は、優先度 7のスタティックタ スクを実行している。
[0037] このような状態において、いずれかのタスク力 単位プロセッサ P1でのみ動作可能 な優先度 6のスタティックタスクに対し要求を行った場合、 OS1は、単位プロセッサ P1 で現在実行されているタスクの優先度と今回要求された割込みのタスクの優先度とを 比較する。
図 7に示した例では、今回要求されたタスクの優先度が、現在単位プロセッサ P2で 実行されて ヽるタスクの優先度より低 ヽことから、単位プロセッサ P1におけるタスクの 実行を継続し、新たに要求されたタスクを実行状態に移すことがな 、。
[0038] 次に、以上述べた本実施形態のマルチプロセッサで行われるマルチプロセッサシ ステムの制御方法を説明する。
図 8は、 OS 1によるスタティックタスク、ダイナミックタスクを処理する際の動作を説明 するためのフローチャートである。 OS1は、レディ'キューの登録条件が満たされた場 合、新たにタスクが発生したとし、このタスクをレディ'キューに登録する(S801)。な お、レディ'キューの登録条件とは、例えば、単位プロセッサ P0〜P3のいずれかによ つてセンド'メッセージの実行がなされた等を指す。
[0039] 次に、 OS1は、登録されたタスクがダイナミックタスクである力スタティックタスクであ るかを判定する(S802)。タスクがスタティックタスクであった場合(Staticタスク)、タ スクに予め割り当てられている単位プロセッサが HALT中であるか否か判断する(S8 03)。単位プロセッサが HALT中であれば(S803 : Yes)、タスクに割り当てられてい る単位プロセッサに内部割込み要求を発生し (S807)、内部割り込み要求された単 位プロセッサの起動が完了するまで待機する(S808)。なお、単位プロセッサの起動 完了後、単位プロセッサは、 OSによる処理 (OS処理)からリターンしてタスクを実行 する処理に戻る。
[0040] 一方、ステップ S802にお 、て、タスクがダイナミックタスクであると判断された場合 ( Dynamicタスク)、図 9のフローチャートに示した処理が開始される。すなわち、 OS1 は、図 9のフローチャートに示すように、マルチプロセッサ内に HALT中の単位プロ セッサがあるか否か判断する(S901)。 HALT中の単位プロセッサがあった場合(S9 01 :Yes)、 OS1は、この単位プロセッサに内部割込み要求を発生させる(S905)。 そして、内部割り込み要求された単位プロセッサの起動が完了するまで待機する(S9 06)。
[0041] また、ステップ S901にお!/、て、 HALT中の単位プロセッサがな!/、と判断された場 合(S 901: No)、単位プロセッサ P0〜P3の全てで実行されているタスクの優先度と、 今回割込み要求されたタスクの優先度とを比較する(S902)。この結果、現在実行さ れて 、るタスクが全て今回要求されたタスクより高 、優先度を有する場合 (S903: No )、タスクスィッチを発生することなくタスク処理へ戻る。
一方、現在実行されているタスクのうちに今回要求されたタスクより低い優先度を有 する場合には、タスクスィッチを発生させる(S903 : Yes)。タスクスィッチの発生後、 OS 1は、タスクスィッチに伴って行われる一般的なタスクスィッチ共通処理を実行す る(S904)。
[0042] また、 OS1は、タスクに予め割り当てられている単位プロセッサが HALT中でない 場合(S803 : No)、この単位プロセッサで現在実行されているタスクの優先度と、今 回要求されたタスクの優先度とを比較する(S804)。この結果、現在実行されている タスクが今回要求されたタスクより高い優先度を有する場合 (S805 : No)、タスクスィ ツチを発生することなくタスク処理へ戻る。
一方、現在実行されて ヽるタスクが今回要求されたタスクより低 ヽ優先度を有する 場合にはタスクスィッチを発生させる(S805 : Yes)。タスクスィッチの発生後、 OS1は 、タスクスィッチに伴って行われる一般的なタスクスィッチ共通処理を実行する(S80 6)。
[0043] 図 10は、図 8、図 9に示したタスクスィッチ共通処理を説明するためのフローチヤ一 トである。タスクスィッチ共通処理は、タスクスィッチが発生した場合、単位プロセッサ P0〜P3の全てが実行する処理である。単位プロセッサ PO〜P3は、先ず、タスクスィ ツチを実行する単位プロセッサを検索、特定する(S1001)。検索の結果、タスクスィ ツチする単位プロセッサが自プロセッサである場合、現在実行しているタスクに係るデ ータの退避等、入れ替え処理を実行する(S 1005)。そして、スィッチ後に処理すベ きタスクにタスクを遷移させる(S 1006)。
[0044] 一方、ステップ S 1002〖こおいて、タスクスィッチする単位プロセッサが他の単位プロ セッサであると判断された場合(S 1002 : No)、タスクスィッチすべき他のプロセッサ において割込み処理が発生する(S1003)。今回タスクスィッチの対象とならな力つた 単位プロセッサは、タスクスィッチする単位プロセッサのタスク入れ替えの処理完了を 待ち(S1004)、 OS処理からリターンしタスク処理へ戻る。
図 11は、割込み制御部 201によるスタティック割込み、ダイナミック割込みを処理す る際の動作を説明するためのフローチャートである。割込み制御部 201は、外部割込 みが発生した場合、発生した外部割込みがダイナミック割込み、スタティック割込みの いずれであるかを判断する(S1101)。判断の結果、割込みハンドラ力 Sスタティック割 込みである場合 (S 1101: Static割込)、スタティック割込みに割り当てられている単 位プロセッサ(指定単位プロセッサ)で実行中のタスク及び割込みハンドラの優先度と 、今回要求されたスタティック割込みの割込みハンドラの優先度とを比較する(S110 2)。
[0045] ステップ S 1102の判断の結果、今回要求されたスタティック割込みの優先度が高い 場合 (S1103 :Yes)、指定単位プロセッサは、先に実行されていた処理に関する情 報 (PSR210、 PC211)を退避する(S1104)。情報の退避後、割込み制御部 201は 、指定単位プロセッサに外部割込みを発生させる(S1105)。
また、今回要求されたスタティック割込みの優先度が、先に指定単位プロセッサで 実行されて 、たタスク及び割込みハンドラの優先度より低 ヽと判断された場合 (S 110 3 :No)、割込み制御部 201は、今回の割込み要求を保留する(S1106)。
[0046] また、割込み制御部 201は、発生した外部割込みがダイナミック割込みであると判 断した場合 (Dynamic割込)、図 12のフローチャートに示す処理を実行する。すなわ ち、割込み制御部 201は、マルチプロセッサが備える単位プロセッサ中に HALT中 の単位プロセッサがあるか否か検索する(S1201)。この検索の結果、 HALT中の単 位プロセッサが存在する場合(S 1202 : Yes)、この単位プロセッサに外部割込みを 発生させる(1208)。
[0047] また、ステップ S1202において、 HALT中の単位プロセッサが存在しないと判断さ れた場合(S 1202 : No)、単位プロセッサ P0〜P3の全てで実行されているタスク及 び割込みハンドラの優先度と、今回割込み要求された優先度とを比較する。そして、 今回発生した外部割込みのタスクの優先度より低い優先度のタスク及び割込みハン ドラが実行されていないか否か判断する(S 1203)。この結果、該当する単位プロセッ サが存在しな 、場合 (S 1204: No)、今回発生した外部割込みを保留する(S 1207)
[0048] 一方、今回発生した割込みハンドラの優先度より低い優先度のタスク及び割込みハ ンドラを実行する単位プロセッサが存在した場合(S 1204 : Yes)、この単位プロセッ サは、先に実行されていた処理に関する情報 (PSR210、 PC211)を退避する(S12 05)。情報の退避後、割込み制御部 201は、指定単位プロセッサに外部割込みを発 生させる(S1206)。
なお、図 8ないし図 12で述べた本実施形態のマルチプロセッサシステムの制御方 法をコンピュータに実行させるためのプログラムは、インストール可能な形式または実 行可能な形式のファイルで CD— ROM、フロッピー(登録商標)ディスク(FD)、 DVD 等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施 形態のマルチプロセッサシステムの制御方法をコンピュータに実行させるためのプロ グラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネット ワーク経由でダウンロードさせることにより提供するように構成しても良い。
[0049] さらに、以上述べた本実施形態のマルチプロセッサシステムの制御方法をコンビュ ータに実行させるためのプログラムは、コンピュータで読み取り可能な ROM、フラッ シュメモリ、メモリカード、 USB接続型フラッシュメモリ等のメモリデバイスに記録されて 提供してちょい。
以上述べた本実施形態は、単位プロセッサの
Figure imgf000017_0001
ヽても実行可能なダイナ ミックタスク及びダイナミック割込み、単位プロセッサのうち指定された単位プロセッサ においてのみ実行可能なスタティックタスク及びスタティック割込みを受付けることが できる。そして、受付けられた各処理を、タスク及び割込みハンドラの優先度にしたが つて単位プロセッサ PO〜P3に割り当てることができる。
産業上の利用の可能性
[0050] 本発明によれば、単位プロセッサの 、ずれにお ヽても実行可能なプログラムの実行 要求である第 1要求及び前記単位プロセッサのうち指定された単位プロセッサにおい てのみ実行可能なプログラムの実行要求である第 2要求を受付けることができる。そ して、受付けられた第 1要求及び第 2要求を、第 1要求、第 2要求の優先度にしたが つてマルチプロセッサの単位プロセッサに割り当てることができる。
また、本発明は、第 1要求、第 2要求の優先度にしたがってマルチプロセッサの単 位プロセッサに割り当てる構成を追加することにより、従来の機能分散型プロセッサ の OS等プログラムの資産を流用してもタスクの単位プロセッサの固定、非固定をも考 慮した並列処理が可能なマルチプロセッサシステムを提供することができる。
[0051] また、発明によれば、第 1要求と第 2要求とを一元的に管理することが可能となり、 並列実行される割込み処理を円滑に実行することができる。
また、本発明によれば、第 1要求、第 2要求が競合した場合、他の単位プロセッサに 割り当てることができない第 2要求を優先し、第 2要求の処理が第 1要求に比して大き く遅延することを防ぐことができる。
また、本発明によれば、第 1要求を単位プロセッサに動的に割り当てる処理をフレキ シブルに実行することができる。
[0052] また、発明によれば、単位プロセッサに固定される第 2要求については予めこの単 位プロセッサを設定しておくことができる。このため、割込み発生時に単位プロセッサ を選択する処理を省き、割込み処理を効率化することができる。
また、本発明によれば、タスクを単位とする並列処理を円滑に実行することができる また、本発明によれば、外部割込み等、割込み処理が発生した場合にも並列処理 を円滑に実行することができる。
[0053] また、本発明によれば、第 1要求、第 2要求の優先度にしたがってマルチプロセッサ の単位プロセッサに割り当てるステップを追加することにより、従来の機能分散型プロ セッサの OS等プログラムの資産を流用してもタスクの単位プロセッサの固定、非固定 をも考慮した並列処理が可能なマルチプロセッサシステム制御方法をコンピュータに 実行させるためのプログラムを提供することができる。

Claims

請求の範囲
[1] 複数の単位プロセッサを備えたマルチプロセッサシステムであって、
前記単位プロセッサの 、ずれにぉ 、ても実行可能なプログラムの実行要求である 第 1要求及び前記単位プロセッサのうち指定された単位プロセッサにおいてのみ実 行可能なプログラムの実行要求である第 2要求を受付ける要求受付手段と、 前記要求受付手段によって受付けられた第 1要求及び第 2要求を、第 1要求、第 2 要求の優先度にしたがって前記単位プロセッサに割り当てる単位プロセッサ割当手 段と、
を備えることを特徴とするマルチプロセッサシステム。
[2] 前記単位プロセッサ割当手段は、第 1要求と第 2要求との間で優先度を比較して一 の前記単位プロセッサに第 1要求と第 2要求とを割り当てることを特徴とする請求項 1 に記載のマルチプロセッサシステム。
[3] 前記単位プロセッサ割当手段は、単位プロセッサに対し、第 1要求よりも第 2要求を 優先して割り当てることを特徴とする請求項 1または 2に記載のマルチプロセッサシス テム。
[4] 前記第 1要求に割り当てられる単位プロセッサを、第 1要求の実行時に決定する割 当単位プロセッサ決定手段を備えることを特徴とする請求項 1から 3のいずれ力 1項 に記載のマルチプロセッサシステム。
[5] 前記第 2要求に割り当てられる単位プロセッサを予め設定する割当単位プロセッサ 設定手段を備えることを特徴とする請求項 1から 4のいずれか 1項に記載のマルチプ 口セッサシステム。
[6] 前記単位プロセッサ割当手段は、前記単位プロセッサにタスク実行の要求を割り当 てることを特徴とする請求項 1から 5のいずれ力 1項に記載のマルチプロセッサシステ ム。
[7] 前記単位プロセッサ割当手段は、前記単位プロセッサに、他のタスクの中断を要求 する割込み処理の実行要求を割り当てることを特徴とする請求項 1から 6のいずれか 1項に記載のマルチプロセッサシステム。
[8] 複数の単位プロセッサを備えたマルチプロセッサシステムに適用されるマルチプロ セッサシステム制御方法をコンピュータに実行させるためのプログラムであって、 前記単位プロセッサの 、ずれにぉ 、ても実行可能なプログラムの実行要求である 第 1要求及び前記単位プロセッサのうち指定された単位プロセッサにおいてのみ実 行可能なプログラムの実行要求を受付ける第 2要求を受付ける要求受付ステップと、 前記要求ステップにおいて受付けられた第 1要求及び第 2要求を、第 1要求、第 2 要求の優先度にしたがって前記単位プロセッサに割り当てる単位プロセッサ割当ス テツプと、
を含むことを特徴とするマルチプロセッサシステムの制御方法をコンピュータに実行 させるためのプログラム。
PCT/JP2007/050508 2006-01-16 2007-01-16 マルチプロセッサシステム、マルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム WO2007081022A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP07706835A EP1876531A4 (en) 2006-01-16 2007-01-16 MULTIPROCESSOR SYSTEM AND PROGRAM FOR CARRYING OUT METHOD FOR CONTROLLING THE MULTIPROCESSOR SYSTEM ON A COMPUTER

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006-007302 2006-01-16
JP2006007302A JP2007188398A (ja) 2006-01-16 2006-01-16 マルチプロセッサシステム、マルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム。

Publications (1)

Publication Number Publication Date
WO2007081022A1 true WO2007081022A1 (ja) 2007-07-19

Family

ID=38256423

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/050508 WO2007081022A1 (ja) 2006-01-16 2007-01-16 マルチプロセッサシステム、マルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム

Country Status (6)

Country Link
US (1) US7979861B2 (ja)
EP (1) EP1876531A4 (ja)
JP (1) JP2007188398A (ja)
KR (1) KR20070106773A (ja)
CN (1) CN101310257A (ja)
WO (1) WO2007081022A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011210201A (ja) * 2010-03-30 2011-10-20 Toshiba Corp 情報処理装置

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007108944A (ja) * 2005-10-12 2007-04-26 Renesas Technology Corp 半導体集積回路装置
US7841967B1 (en) 2006-04-26 2010-11-30 Dp Technologies, Inc. Method and apparatus for providing fitness coaching using a mobile device
US8902154B1 (en) 2006-07-11 2014-12-02 Dp Technologies, Inc. Method and apparatus for utilizing motion user interface
US8620353B1 (en) 2007-01-26 2013-12-31 Dp Technologies, Inc. Automatic sharing and publication of multimedia from a mobile device
US8949070B1 (en) 2007-02-08 2015-02-03 Dp Technologies, Inc. Human activity monitoring device with activity identification
US8555282B1 (en) 2007-07-27 2013-10-08 Dp Technologies, Inc. Optimizing preemptive operating system with motion sensing
US9032128B2 (en) * 2008-04-28 2015-05-12 Hewlett-Packard Development Company, L.P. Method and system for generating and delivering inter-processor interrupts in a multi-core processor and in certain shared memory multi-processor systems
US8285344B2 (en) 2008-05-21 2012-10-09 DP Technlogies, Inc. Method and apparatus for adjusting audio for a user environment
US8996332B2 (en) 2008-06-24 2015-03-31 Dp Technologies, Inc. Program setting adjustments based on activity identification
US8887159B2 (en) * 2008-10-01 2014-11-11 Microsoft Corporation Flexible and scalable operating system achieving a fast boot and reliable operation
US8872646B2 (en) 2008-10-08 2014-10-28 Dp Technologies, Inc. Method and system for waking up a device due to motion
CN101782862B (zh) * 2009-01-16 2013-03-13 鸿富锦精密工业(深圳)有限公司 处理器分配控制系统及其控制方法
TWI448847B (zh) * 2009-02-27 2014-08-11 Foxnum Technology Co Ltd 處理器分配控制系統及其控制方法
US9529437B2 (en) 2009-05-26 2016-12-27 Dp Technologies, Inc. Method and apparatus for a motion state aware device
US9515899B2 (en) * 2012-12-19 2016-12-06 Veritas Technologies Llc Providing optimized quality of service to prioritized virtual machines and applications based on quality of shared resources
CN103699444B (zh) * 2013-12-17 2017-03-15 华为技术有限公司 中央处理器热插拔的实现方法及装置
CN106560794A (zh) * 2016-08-08 2017-04-12 柏建民 基于远程智能存储单元的分布式多处理器单元系统
JP7226064B2 (ja) * 2019-04-23 2023-02-21 株式会社デンソー 電子制御装置
US11449339B2 (en) * 2019-09-27 2022-09-20 Red Hat, Inc. Memory barrier elision for multi-threaded workloads

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0250753A (ja) * 1988-05-16 1990-02-20 Ardent Computer Corp コンピュータにおける割込処理装置およびその方法
JPH02122365A (ja) * 1988-10-31 1990-05-10 Hitachi Ltd プロセッサ割当て方式
JP2005327007A (ja) * 2004-05-13 2005-11-24 Firmware Systems Inc 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JP2006243864A (ja) * 2005-03-01 2006-09-14 Seiko Epson Corp プロセッサおよび情報処理方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5423341A (en) 1977-07-25 1979-02-21 Nippon Telegr & Teleph Corp <Ntt> Microprogram sequence control system
JPH0789323B2 (ja) 1985-12-20 1995-09-27 日本電気株式会社 多重割込制御方式
US5613128A (en) * 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
US5905898A (en) 1994-05-31 1999-05-18 Advanced Micro Devices, Inc. Apparatus and method for storing interrupt source information in an interrupt controller based upon interrupt priority
US5781187A (en) 1994-05-31 1998-07-14 Advanced Micro Devices, Inc. Interrupt transmission via specialized bus cycle within a symmetrical multiprocessing system
US5613126A (en) 1994-05-31 1997-03-18 Advanced Micro Devices, Inc. Timer tick auto-chaining technique within a symmetrical multiprocessing system
US5555430A (en) 1994-05-31 1996-09-10 Advanced Micro Devices Interrupt control architecture for symmetrical multiprocessing system
DE69531270T2 (de) 1994-05-31 2004-04-22 Advanced Micro Devices, Inc., Sunnyvale Unterbrechungssteuerungsgeräte in symmetrischen Mehrprozessorsystemen
US5568649A (en) * 1994-05-31 1996-10-22 Advanced Micro Devices Interrupt cascading and priority configuration for a symmetrical multiprocessing system
US5564060A (en) * 1994-05-31 1996-10-08 Advanced Micro Devices Interrupt handling mechanism to prevent spurious interrupts in a symmetrical multiprocessing system
US5530891A (en) 1994-05-31 1996-06-25 Advanced Micro Devices System management interrupt mechanism within a symmetrical multiprocessing system
JPH08297581A (ja) 1995-02-28 1996-11-12 Nec Corp リアルタイム・オペレーティングシステムにおける割り込み管理方式
JPH09282188A (ja) 1996-04-16 1997-10-31 Mitsubishi Electric Corp 割込処理方法およびこの方法を用いたシステム
US5826081A (en) 1996-05-06 1998-10-20 Sun Microsystems, Inc. Real time thread dispatcher for multiprocessor applications
US5918057A (en) * 1997-03-20 1999-06-29 Industrial Technology Research Institute Method and apparatus for dispatching multiple interrupt requests simultaneously
US6289369B1 (en) * 1998-08-25 2001-09-11 International Business Machines Corporation Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system
US6665699B1 (en) * 1999-09-23 2003-12-16 Bull Hn Information Systems Inc. Method and data processing system providing processor affinity dispatching
US6633940B1 (en) * 1999-10-11 2003-10-14 Ati International Srl Method and apparatus for processing interrupts in a computing system
US6928646B1 (en) * 2000-02-02 2005-08-09 Sony Corporation System and method for efficiently performing scheduling operations in an electronic device
US6834385B2 (en) * 2001-01-04 2004-12-21 International Business Machines Corporation System and method for utilizing dispatch queues in a multiprocessor data processing system
US7159216B2 (en) * 2001-11-07 2007-01-02 International Business Machines Corporation Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system
JP2005004562A (ja) 2003-06-13 2005-01-06 Canon Inc マルチプロセッサシステム、マルチプロセッサシステムの制御方法、およびマルチプロセッサシステムの制御プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0250753A (ja) * 1988-05-16 1990-02-20 Ardent Computer Corp コンピュータにおける割込処理装置およびその方法
JPH02122365A (ja) * 1988-10-31 1990-05-10 Hitachi Ltd プロセッサ割当て方式
JP2005327007A (ja) * 2004-05-13 2005-11-24 Firmware Systems Inc 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JP2006243864A (ja) * 2005-03-01 2006-09-14 Seiko Epson Corp プロセッサおよび情報処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011210201A (ja) * 2010-03-30 2011-10-20 Toshiba Corp 情報処理装置

Also Published As

Publication number Publication date
EP1876531A4 (en) 2009-07-01
CN101310257A (zh) 2008-11-19
JP2007188398A (ja) 2007-07-26
US20070169126A1 (en) 2007-07-19
EP1876531A1 (en) 2008-01-09
KR20070106773A (ko) 2007-11-05
US7979861B2 (en) 2011-07-12

Similar Documents

Publication Publication Date Title
WO2007081022A1 (ja) マルチプロセッサシステム、マルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム
US6820155B1 (en) Interruption managing device and interruption managing method
KR100746797B1 (ko) 프로세서 및 정보처리 방법
JP5644307B2 (ja) 情報処理装置、情報処理装置の制御方法及び制御プログラム
US10545892B2 (en) Multi-thread processor and its interrupt processing method
KR20110081987A (ko) 멀티 스레드 프로세서에서 인터럽트들을 할당하기 위한 방법들 및 시스템들
EP1855204A1 (en) Multi-processor system and program for computer to carry out a control method of interrupting multi-processor system
JP2008123157A (ja) プロセッサ及び割込み制御方法
US20060112394A1 (en) Computer system
KR20070090649A (ko) 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
JP4609113B2 (ja) プロセッサ
JP2005190207A (ja) 割り込み制御装置、制御方法
JP4033215B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム
WO2013035246A1 (ja) 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路
US8910181B2 (en) Divided central data processing
JP2005071161A (ja) タスク管理プログラムおよびタスク制御装置
JP2005092780A (ja) リアルタイムプロセッサシステム及び制御方法
JP4594889B2 (ja) 複数の処理装置を備えたシステム上で実行されるプログラムのトレース方法、および、複数の処理装置を備えたシステム
JP2007034514A (ja) 情報処理装置
JP4017005B2 (ja) 演算装置
JP2005327007A (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JP2001229038A (ja) マルチオペレーテング計算機システム
JP2005293070A (ja) タスク実行システム
JP2007233608A (ja) 割込み制御装置及び割込み制御方法をコンピュータに実行させるためのプログラム。
US20090083748A1 (en) Program execution device

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200780000112.5

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 1020077020954

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2007706835

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 2007706835

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE