WO2010097925A1 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- WO2010097925A1 WO2010097925A1 PCT/JP2009/053546 JP2009053546W WO2010097925A1 WO 2010097925 A1 WO2010097925 A1 WO 2010097925A1 JP 2009053546 W JP2009053546 W JP 2009053546W WO 2010097925 A1 WO2010097925 A1 WO 2010097925A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- domain
- area
- access
- memory
- data
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 16
- 230000015654 memory Effects 0.000 claims abstract description 230
- 238000004891 communication Methods 0.000 claims abstract description 139
- 238000012545 processing Methods 0.000 claims description 32
- 238000006243 chemical reaction Methods 0.000 claims 2
- 238000000926 separation method Methods 0.000 description 46
- 101100339482 Colletotrichum orbiculare (strain 104-T / ATCC 96160 / CBS 514.97 / LARS 414 / MAFF 240422) HOG1 gene Proteins 0.000 description 30
- 102000052594 Anaphase-Promoting Complex-Cyclosome Apc2 Subunit Human genes 0.000 description 26
- 108091006464 SLC25A23 Proteins 0.000 description 26
- FYLGZBNNVGZPIW-UHFFFAOYSA-N 1-[4-(1,4-dioxa-8-azaspiro[4.5]decan-8-yl)phenyl]ethanone Chemical compound C1=CC(C(=O)C)=CC=C1N1CCC2(OCCO2)CC1 FYLGZBNNVGZPIW-UHFFFAOYSA-N 0.000 description 18
- 238000012546 transfer Methods 0.000 description 11
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Definitions
- the present invention relates to a data processor having a plurality of central processing units and a built-in memory, or capable of executing a program under the management of different operating systems.
- a multi-CPU central processing unit
- the present invention relates to a technology that is effective when applied to a microprocessor formed as a semiconductor integrated circuit.
- Patent Document 1 discloses a technique for providing a blocking circuit, from the viewpoint of access to an illegal address with a small amount of circuit overhead.
- the number of devices such as I / O devices and accelerator IPs is limited, and there is a demand to share these multiple CPUs and OSs.
- one hard disk device is used for storing map data and music data, and they are used for path search and music playback that operate on separate processors. Sometimes you want to access them at the same time.
- the first central processing unit, the second central processing unit, the first operating system executed by the first central processing unit, and the second central processing unit are executed.
- an access control module is further provided for blocking access when one domain accesses an area assigned to the other domain based on settings from the firmware.
- the memory holds the code that can be shared in a part of the third area of the memory, and the firmware is stored in the third area.
- control is performed so that read access is permitted from the first domain and the second domain and write access is not permitted.
- the memory includes a fourth area for storing communication data when data communication is performed between the first domain and the second domain, and the firmware does not request communication from the first and second domains.
- the fourth area is controlled so that it cannot be accessed from the first domain and the second domain, and when the middleware receives a request that the first domain communicates data with the second domain, In the state where the firmware is controlled so that access to the fourth area is permitted and access to the fourth area is not permitted to the second domain, the first domain is permitted to access the fourth area.
- the memory is used for communication when the first domain performs data communication with the second domain, and when the second domain performs data communication with the first domain.
- the firmware controls the first domain to be accessible to the fifth area and the second domain to be inaccessible, and the sixth domain to the sixth area. Control is performed so that the two domains can be accessed and the first domain cannot be accessed.
- the middleware receives a request that the first domain communicates data with the second domain, After writing communication data in the fifth area, the firmware is instructed so that the fifth area and the sixth area are inaccessible from the first and second domains. Transferring data to the 6 regions.
- the time required for software development can be shortened in a multi-core environment, and the efficiency of input / output processing can be improved.
- Multi-core processor 101 to 108: CPU, 110: Bus in processor, 120 and 121: Access control hardware
- 140: Domain separation firmware 141 to 4: OS
- 150 Domain cooperation middleware
- 181 and 182 Virtual memory space
- 210 to 218 and 220 to 229 Each OS Virtual memory space area 250: Built-in memory management table 260-269: Built-in memory area 300-309 and 310-319: Access control hardware setting area
- FIG. 1 is an example of a hardware and software configuration of an information processing apparatus according to the present invention.
- the multi-core processor (100) which is a hardware component of the information processing apparatus in the present embodiment, has n central processing units (hereinafter referred to as “CPU”) (CPU0 (101) to CPUn (108)).
- CPU central processing units
- An external memory (130), a built-in memory (160), and access control hardware (120) are connected by an in-processor bus (110), and each CPU passes through an in-processor bus (110).
- a memory control device for controlling the external memory and an input / output control device such as a serial IO are connected to the processor internal bus.
- the input / output control device is included in one memory space like the external memory (130) and the built-in memory (160) and the control is the same, the input / output control device is represented by the external memory or the built-in memory. In the following, description of the input / output control device is omitted.
- each of the n CPUs (CPU0 (101) to CPUn (108)) accesses the external memory (130) and the built-in memory (160) via the processor internal bus (110).
- the transaction generated on the processor internal bus (110) is monitored, and whether or not access is possible is determined for each transaction based on a rule that determines whether or not access is specified in advance.
- a transaction related to access permitted based on the rule that determines whether access is permitted is processed as usual, but a transaction related to access that is not permitted based on the rule is invalidated (blocked) as an access violation.
- an interrupt signal is sent to the CPU that generated the transaction in order to start exception processing for the occurrence of an access violation.
- the access control hardware (120) designates whether or not each CPU can access the internal memory area and the external memory area by using the head address and the area size. Further, whether or not access is possible is designated for each OS for read access and write access. The setting for each area is only to specify an OS for which read access / write access is permitted, and access is not permitted for an OS that is not set. This makes it possible to reduce the access control hardware (120).
- the software configuration of the information processing apparatus is such that the domain separation firmware (140) has m OSs (OS0 (141), OS1 (142), OS2 (143) to OSm (OSm) on the multi-core processor (100). In order to provide an environment necessary for executing 144)), hardware resource management is performed.
- the domain separation firmware (140) and the OSs 0 to m perform the following in order to manage hardware resources.
- the domain separation firmware (140) provides the OS0 (141) with two CPUs, CPU0 (101) and CPU1 (102), a partial area of the built-in memory (160), and one of the external memories (130). The partial area is assigned as a hardware resource, and the OS 0 (141) manages the assigned hardware resource and provides an environment for executing a program to the software module 0 (151).
- the domain separation firmware (140) provides two CPUs, CPU2 (103) and CPU3 (104), and a partial area of the built-in memory (160) and one of the external memories (130) to the OS1 (142).
- the partial area is assigned as a hardware resource, and the OS 1 (142) manages the assigned hardware resource and provides an environment for executing a program to the software module 1 (152).
- the domain separation firmware (140) sends two CPUs, CPU4 (105) and CPU5 (106), a partial area of the built-in memory (160), and one of the external memories (130) to the OS2 (143).
- the partial area is allocated as a hardware resource, and the OS 2 (143) manages the allocated hardware resource and provides an environment for executing a program to the software module 2 (153).
- the domain separation firmware (140), with respect to the OSm (144), the two CPUs CPUn-1 (107) and CPUn (108) and a part of the internal memory (160) and the external A part of the memory (130) is allocated as a hardware resource, and the OSm (144) manages the allocated hardware resource and provides an environment for executing a program for the software module m (154). To do.
- the domain separation firmware (140) sets a rule for determining whether or not access is possible to the access control hardware (120).
- a normal OS is created on the assumption that hardware resources managed by the OS are not accessed from other than the OS, and a partial area of the internal memory (160) allocated to the OS or an external Unexpected events such as access to a partial area of the memory (130) from other than the OS, in particular, data rewriting, cause abnormal operations to the OS and software modules executed on the OS.
- the domain separation firmware (140) sets a rule for determining whether or not access is possible for the access control hardware (120) as follows. (1) Access from the OS1 (142) and the software module 1 (152) to a partial area of the internal memory (160) allocated to the OS0 (141) or a partial area of the external memory (130); Access to a partial area of the internal memory (160) and a partial area of the external memory (130) from the CPU 2 (103) and the CPU 3 (104) so that data cannot be rewritten, in particular, data rewriting. Is impossible.
- the CPU 4 (105) and the CPU 5 (106) make a partial area of the internal memory (160) as well as the relevant area so that the OS 2 (143) and the software module 2 (153) cannot access and rewrite data. Access to a partial area of the external memory (130), in particular, data rewriting is impossible.
- the CPU n-1 (107) and the CPU n (108) store the internal memory (160) so that the OS m (144) and the software module m (154) can be accessed and data cannot be rewritten. Access to a partial area and a partial area of the external memory (130), in particular, data rewriting is impossible.
- the CPU n-1 (107) and the CPU n (108) store the internal memory (160) so that the OS m (144) and the software module m (154) can be accessed and data cannot be rewritten. Access to a partial area and a partial area of the external memory (130), in particular, data rewriting is impossible.
- the CPU 2 (103) and the CPU 3 (104) have a partial area of the internal memory (160) and the corresponding area so that the OS 1 (142) and the software module 1 (152) can not be accessed and data can be rewritten. Access to a partial area of the external memory (130), in particular, data rewriting is impossible.
- the CPU n-1 (107) and the CPU n (108) store the internal memory (160) so that the OS m (144) and the software module m (154) can be accessed and data cannot be rewritten. Access to a partial area and a partial area of the external memory (130), in particular, data rewriting is impossible.
- Access to a partial area of the external memory (130), in particular, data rewriting is impossible.
- a part of the internal memory (160) is accessed from the CPU 4 (105) and the CPU 5 (106) so that access from the OS 2 (143) and the software module 2 (153) and further data rewriting are impossible.
- Access to a region and a partial region of the external memory (130), in particular, data rewriting is impossible.
- the resources allocated to each OS are basically not accessed from other OSs, so that it is possible to prevent abnormal operations due to unauthorized access of other OSs.
- the domain cooperation middleware (150) is implemented in order to perform communication between OSs.
- the domain cooperation middleware (150) uses the access control hardware (120) and the domain separation firmware (140) of this embodiment, and the hardware resources for the OS0 (141) and the software module 0 (151) to execute.
- Hardware resources for execution by OS1 (142) and software module 1 (152) hardware resources for execution by OS2 (143) and software module 2 (153), and similarly OSm (144)
- And software module m (154) are separated from each other in a system configuration in which software resources (software module 0 (151), software module 1 (152), software module 2 (153) to It provides a communication function for performing the linkage processing between the respective shift ware module m (154)).
- the reason for newly providing the domain cooperation middleware (150) is to facilitate the implementation. That is, the domain separation firmware is basically to reliably separate each OS. On the other hand, the cooperation between the OSs connects the separated OSs. If the domain separation firmware incorporates a completely different function in this way, even if communication between the OSs is unnecessary, a hole is formed between the separated OSs, which is not preferable. On the other hand, if an OS is to be provided with a function for performing communication between OSs, it must be changed so as to take into account the situation of other OSs, and the modification takes time.
- domain linkage middleware is newly provided as in the present application, and a request to perform communication between OSs is issued from the OS, and it is necessary for communication by determining whether or not the domain linkage middleware knows the whole.
- domain separation firmware it is only necessary to implement the domain cooperation firmware when communication between OSs is necessary.
- domain separation firmware (140) and the domain cooperation middleware (150) are configured to be read when an OS is required, and may be executed by a CPU in the domain to which the read OS belongs, or different. It may be executed by the CPU.
- Example 1> 2 shows a CPU (CPU0 (101) as a hardware resource to be executed for each software module (software module 0 (151) to software module m (154)) in the embodiment shown in FIG. ) To CPUn (108)) and the external memory (130), and the domain separation firmware (140) corresponds to the CPU (CPU0 (101) to CPUn (108) for each OS (OS0 (141) to OSm (144)). )) And an external memory (130) divided, in one embodiment, pay attention to OS0 (141) and software module 0 (151), and OSm (144) and software module m (154). It is a thing.
- the virtual memory space (181) constitutes a memory area for execution by the OS0 (141) and the software module 0 (151), and the virtual memory space (182) includes the OSm (144) and the software module m ( 154) constitutes a memory area for execution, and each actual state exists in the external memory (130).
- the actual areas allocated to the external memory (130) as memory areas for execution by the OS0 (141) and the software module 0 (151) are the OS code 1 (OSC1, 200) and the OS code on the external memory (130).
- 2 OSC2, 201
- OS individual data a OSDa, 202
- AP code 1 APIC1, 204
- AP code 2 API, 206
- AP individual data a APDA, 206
- OSMa, 208 inter-OS communication data a
- AP code 1 (APC1, 2 4)
- the address is converted into AP code 2 (APC2, 215), AP individual data a (APDA, 216), and inter-OS communication data a (OSMa, 218), and from OS0 (141) and software module 0 (151) Accessed.
- OS code 1 OSC1, 200
- OS code 2 OSC2, OSC2, 200
- OS individual data b OSDb, 203
- AP code 1 API1
- APIC2, 205 AP code 2
- API2b AP individual data b
- OSMa inter-OS communication data a
- API1,224 AP c de 2
- API2,225 AP individual data b
- OSMa address translation inter-OS communication data a
- the access control hardware (120) in the present embodiment uses the combination of the addresses converted by the MMU0 (171) and MMU1 (172) and the CPU, Judgment is made.
- the rules for determining whether or not the access control hardware (120) can access are as follows, which are set by the domain separation firmware (140), respectively.
- the access permission rule entry (300) for OS code 1 (OSC1, 200) and OS code 2 (OSC2, 201) includes OS0 (141), software module 0 (151), and OSm (144) and software. Read access from the CPU executing module m (154).
- the access permission rule entry (302) for the OS individual data a (OSDa, 202) can be read / written from the CPU executing the OS0 (141) and the software module 0 (151).
- Access permission rule entry (303) for OS individual data b (OSDb, 203) can be read and written from the CPU executing OSm (144) and software module m (154).
- the access permission rule entry (304) for AP code 1 (APC1, 204) and AP code 2 (205) includes OS0 (141) and software module 0 (151), and OSm (144) and software module m. Read access from CPU executing (154).
- Access permission rule entry (306) for AP individual data a is read / write accessible from the CPU executing OS0 (141) and software module 0 (151).
- Access permission rule entry (307) for AP individual data b is read / write accessible from the CPU executing OSm (144) and software module m (154).
- Other access permission rule entries access permission rule entry (310), access permission rule entry (311), access permission rule entry (312), access permission rule entry (313)) for external memory areas , OS0 (141) and software module 0 (151), and OSm (144) and software module m (154) are not accessible from all CPUs.
- the domain separation firmware (140) sets that all accesses from the CPU executing the above are impossible.
- R for read access permission
- W for write access permission
- 0 for access from the CPU managed by OS0
- Access from a CPU whose m ′′ is managed by OSm is the target. Therefore, for example, “R0m” means that read access is possible (write access is impossible) from OS0 and the CPU managed by OSm.
- the characteristic thing is access control hardware so that the OS code 1 and 2 and the AP code 1 and 2 areas (310, 313) can be read-accessed from the CPU managed by both OS0 and OSm. Wear (120) is set. As described above, it is assumed that each OS operates independently and is not accessed by another OS. Therefore, it is desirable that the area managed by each is completely separated. However, the reason why an access from another OS causes an abnormal operation is that data is rewritten. Here, considering the operation of the CPU, only read access from each CPU is sufficient for the code for the OS and the code for the application. Therefore, in the present invention, what can share the code for OS and the code for application is shared between a plurality of OSs, and the access control hardware (120) is set to allow only read access. Therefore, the write access that causes abnormal operation is blocked, and the memory area can be used safely and efficiently. This is the same in the other embodiments.
- OS0 (141) and software module 0 (151), or OSm (144) and software module m (154) read / write data from / to OS communication Data a (OSMa, 208) for inter-OS communication Is executed, a read / write access request for the area is issued to the domain cooperation middleware (150) prior to that.
- the domain cooperation middleware (150) that has received the read / write request for the area determines whether it is currently possible to perform inter-OS communication, and performs inter-OS communication Data a (OSMa, 208) via the domain separation firmware (140).
- the OS and the software module that received the acceptance of the read / write access request for the inter-OS communication Data a (OSMa, 208) read / write data from / to the inter-OS communication Data a (OSMa, 208), and then the domain cooperation middleware (150 ), Read / write completion for the area is issued.
- the domain cooperation middleware (150) that has received the read / write completion for the area is similar to the initial state in the access permission rule entry (308) for the inter-OS communication Dataa (OSMa, 208) via the domain separation firmware (140).
- OSMa inter-OS communication Dataa
- domain separation firmware 140
- all access from the CPU executing OS0 (141) and software module 0 (151), and OSm (144) and software module m (154) is set.
- the area (208) used for inter-OS communication is disabled by default for all OSs (CPUs), and domain cooperation middleware and domain separation firmware are installed as necessary. Used to grant access permission only to the OS (CPU) that issued the request. Thus, it is possible to protect data used for communication from being accessed by another OS (CPU) and reading information or destroying information.
- FIG. 3 shows hardware resources for executing each software module (software module 0 (151) to software module m (154)) in the embodiment shown in FIG.
- the domain separation firmware (140) for each OS is limited to the CPU (CPU0 (101) to CPUn (108)) and the external memory (130). 101) to CPUn (108)) and an external memory (130) are allocated.
- OS0 (141) and software module 0 (151), and OSm (144) and software module m (154) are allocated.
- the memory area (208) for performing communication between the OSs is shared between the OS0 and the OSm. However, in this embodiment, individual areas (208, 209) are provided. Hereinafter, this embodiment will be described.
- the virtual memory space (181) constitutes a memory area for execution by the OS0 (141) and the software module 0 (151), and the virtual memory space (182) includes the OSm (144) and the software module m ( 154) constitutes a memory area for execution, and each actual state exists in the external memory (130).
- the actual areas allocated to the external memory (130) as memory areas for execution by the OS0 (141) and the software module 0 (151) are the OS code 1 (OSC1, 200) and the OS code on the external memory (130).
- 2 OSC2, 201
- OS individual data a OSDa, 202
- AP code 1 APIC1, 204
- AP code 2 API, 206
- AP individual data a APDA, 206
- OSMa, 208 inter-OS communication data a
- AP code 1 (APC1, 2 4)
- the address is converted into AP code 2 (APC2, 215), AP individual data a (APDA, 216), and inter-OS communication data a (OSMa, 218), and from OS0 (141) and software module 0 (151) Accessed.
- OS code 1 OSC1, 200
- OS code 2 OSC2
- OS code 1 OSC1, 200
- OS code 2 OSC2
- OSC2 OS code 2
- OSMb inter-OS communication data b
- API1 (APC1, 224), AP ode 2 (APC2,225), AP individual data b (APDb, 227), is address translation inter-OS communication data b (OSMb, 229), it is accessed from OSm (144) and the software module m (154).
- OSMb address translation inter-OS communication data b
- the access control hardware (120) in the present embodiment uses the combination of the addresses converted by the MMU0 (171) and MMU1 (172) and the CPU, Judgment is made. Accordingly, the rules for determining whether or not the access control hardware (120) can access are as follows, which are set by the domain separation firmware (140), respectively.
- the access permission rule entry (300) for OS code 1 (OSC1, 200) and OS code 2 (OSC2, 201) includes OS0 (141), software module 0 (151), and OSm (144) and software. Read access from the CPU executing module m (154).
- the access permission rule entry (302) for the OS individual data a (OSDa, 202) can be read / written from the CPU executing the OS0 (141) and the software module 0 (151).
- Access permission rule entry (303) for OS individual data b (OSDb, 203) can be read and written from the CPU executing OSm (144) and software module m (154).
- the access permission rule entry (304) for AP code 1 (APC1, 204) and AP code 2 (APC2, 205) includes OS0 (141), software module 0 (151), and OSm (144) and software. Read access from the CPU executing module m (154).
- Access permission rule entry (306) for AP individual data a is read / write accessible from the CPU executing OS0 (141) and software module 0 (151).
- Access permission rule entry (307) for AP individual data b is read / write accessible from the CPU executing OSm (144) and software module m (154).
- Other access permission rule entries access permission rule entry (310), access permission rule entry (311), access permission rule entry (312), access permission rule entry (313)) for external memory areas , OS0 (141) and software module 0 (151), and OSm (144) and software module m (154) are not accessible from all CPUs.
- Access to / from rule entry (308) for inter-OS communication Data a (OSMa, 208) is read / write accessible from the CPU executing OS0 (141) and software module 0 (151).
- the access permission rule entry (309) for the inter-OS communication data b (OSMb, 209) is read / write accessible from the CPU executing the OSm (144) and the software module m (154).
- the software module 0 when performing inter-OS communication from the software module 0 (151) to the software module m (154), the software module 0 (151) performs inter-OS communication Data a (OSMa, OSMa on the external memory (130).
- OSMa inter-OS communication Data a
- OSMa optical microscopy data a
- a transfer request is issued to the domain cooperation middleware (150).
- the domain cooperation middleware (150) that has received the transfer request uses the domain separation firmware (140) to access the OS communication Data a (OSMa, 208) and the access permission rule entry (308) and the OS communication Data b (OSMb, 209).
- the domain cooperation middleware (150) uses the domain separation firmware (140) to access the access permission rule entry (308) for the inter-OS communication Data a (OSMa, 208) and the inter-OS communication Data b (OSMb, 209).
- the access rule for inter-OS communication Data a (OSMa, 208) using the domain separation firmware (140)
- the entry (308) includes read / write access from the CPU executing the OS0 (141) and the software module 0 (151), and the access permission rule entry (309) for the inter-OS communication data b (OSMb, 209).
- OSm 144) and software modules m (154) read and write accessible from running CPU and the, set, the software module 0 to (151), issues a transfer completion.
- the software module m When performing inter-OS communication from the software module m (154) to the software module 0 (151), the software module m (154) transmits data to the inter-OS communication Data b (OSMb, 209) on the external memory (130). When the writing is completed, a transfer request is issued to the domain cooperation middleware (150).
- OSMb inter-OS communication Data b
- the domain cooperation middleware (150) that has received the transfer request uses the domain separation firmware (140) to access the access permission rule entry (308) for the inter-OS communication Data a (OSMa, 208) and the inter-OS communication Data b (OSMb, 209) to the access permission rule entry (309), all accesses from the CPU executing OS0 (141) and software module 0 (151), and OSm (144) and software module m (154) are impossible. , And set. Thereafter, the domain cooperation middleware (150) uses the domain separation firmware (140) to access the access permission rule entry (308) for the inter-OS communication Data a (OSMa, 208) and the inter-OS communication Data b (OSMb, 209).
- the access rule for inter-OS communication Data a (OSMa, 208) using the domain separation firmware (140)
- the entry (308) includes read / write access from the CPU executing the OS0 (141) and the software module 0 (151), and the access permission rule entry (309) for the inter-OS communication data b (OSMb, 209).
- each OS can write communication data in its own area before receiving communication permission, so that it can move to the next process and operate at high speed. Is possible.
- FIG. 4 shows a CPU (CPU 0 (101) as a hardware resource to be executed for each software module (software module 0 (151) to software module m (154)) in the embodiment shown in FIG. ) To CPUn (108)), an external memory (130), and a built-in memory (160).
- the domain separation firmware (140) corresponds to each OS (OS0 (141) to OSm (144)) with respect to each CPU (CPU0 (101). ) To CPUn (108)), a division of the external memory (130), and a division of the built-in memory (160).
- the actual areas allocated to the external memory (130) as memory areas for execution by the OS0 (141) and the software module 0 (151) are the OS code 1 (OSC1, 200) and the OS code on the external memory (130).
- 2 (OSC2, 201), OS individual data a (OSDa, 202), AP code 1 (APC1, 204), AP code 2 (APC2, 205), AP individual data a (APDA, 206), inter-OS communication data a (OSMa, 208), which are OS code 1 (OSC1, 260), OS code 2 (OSC2, 261), OS individual data a (OSDa, 262), AP code 1 (APC1) on the built-in memory (160) , 264), AP code 2 ( PC 2, 265), AP individual data a (AP Da, 266), and OS actual communication data a (OSMa, 268) are moved to M OS 0 (171), and OS code 1 (1) on virtual memory space (181) OSC1, 230), OS code 2 (OSC2,
- OS code 1 OSC1, 200
- OS code 2 OSC2
- OS code 1 OSC1
- OS code 2 OSC2
- OS code 1 OSC1, 204
- AP code 2 API2
- API2 AP code 2
- OS-to-OS communication data a OSMa, 208
- OS code 1 OSC1, 260
- OS code 2 OSC2, 261
- OS individual data b OSDb, 263
- AP code 1 APIC1, 264
- AP code 2 (APC2, 26 )
- An actual copy is transferred to AP individual data b (APDb, 267), and inter-OS communication data a (OSMa, 268), and OS code 1 (OSC1, 240) in the virtual memory space (182) is transferred by MMU1 (172).
- OS code 2 (OSC2, 241), OS individual data b (OSDb, 243), AP code 1 (APC1, 244), AP code 2 (APC2, 245), AP individual data b (APDb, 247)
- OS The address is converted to inter-communication data a (OSMa, 248) and accessed from OSm (144) and software module m (154).
- the built-in memory management table (250) includes the free space on the built-in memory (160), the actual state of the memory area on the external memory (130) (OS code 1 (OSC1, 200), OS code 2 (OSC2, 201), OS Individual data a (OSDa, 202), OS individual data b (OSDb, 203), AP code 1 (APC1, 204), AP code 2 (APC2, 205), AP individual data a (APDA, 206), AP individual data b (APDb, 207), inter-OS communication data a (OSMa, 208), etc.
- OS code 1 OSC1, 260
- OS code 2 OSC2, 261
- OS individual data a OSDa, 262
- OS individual data b OSDb, 263
- AP code 1 API1, 264
- AP code 2 API2, 265
- AP individual data a APDA, 266
- AP individual data b APDb, 267
- the capacity of the internal memory (160) is usually smaller than the capacity of the external memory, and all the actual copies of the allocated memory area on the external memory (130) are held in the internal memory (160). It is not possible to do. Accordingly, an area is secured on the internal memory (160) in accordance with the access of the software module and the OS, and a copy of the actual memory area is allocated to the area on the external memory (130) that is the access target. If it is clear from the built-in memory management table (TBL, 250) that the built-in memory (160) has no free space, it is selected from the actual copy group of the memory area already allocated to the built-in memory (160). One is selected, a copy of the actual state of the memory area is saved in the corresponding area of the external memory (130), and the area is secured.
- TBL, 250 built-in memory management table
- the access control hardware (120) in the present embodiment uses the combination of the addresses converted by the MMU0 (171) and MMU1 (172) and the CPU, Judgment is made. Accordingly, the rules for determining whether the access control hardware (120) can access are set by the domain separation firmware (140) as follows.
- the access permission rule entry (300) for OS code 1 (OSC1, 200) and OS code 2 (OSC2, 201) includes OS0 (141), software module 0 (151), and OSm (144) and software. Read access from the CPU executing module m (154).
- the access permission rule entry (302) for the OS individual data a (OSDa, 202) can be read / written from the CPU executing the OS0 (141) and the software module 0 (151).
- Access permission rule entry (303) for OS individual data b (OSDb, 203) can be read and written from the CPU executing OSm (144) and software module m (154).
- the access permission rule entry (304) for AP code 1 (APC1, 204) and AP code 2 (APC2, 205) includes OS0 (141), software module 0 (151), and OSm (144) and software. Read access from the CPU executing module m (154).
- Access permission rule entry (306) for AP individual data a is read / write accessible from the CPU executing OS0 (141) and software module 0 (151).
- Access permission rule entry (307) for AP individual data b is read / write accessible from the CPU executing OSm (144) and software module m (154).
- the access permission rule entries for the other external memory areas are entered from the CPU executing OS0 (141) and software module 0 (151), and OSm (144) and software module m (154). No access at all.
- the rules for determining whether or not the access control hardware (121) for the internal memory (160) is accessible are set by the domain separation firmware (140) as follows.
- the access permission rule entry (310) for OS code 1 (OSC1, 260) and OS code 2 (OSC2, 261) includes OS0 (141), software module 0 (151), and OSm (144) and software. Read access from the CPU executing module m (154).
- Access permission rule entry (311) for OS individual data a (OSDa, 262) can be read and written from the CPU executing OS0 (141) and software module 0 (151).
- the access permission rule entry (312) for the OS individual data b (OSDb, 263) is read / write accessible from the CPU executing the OSm (144) and the software module m (154).
- the access permission rule entry (313) for AP code 1 (APC1, 264) and AP code 2 (APC2, 265) includes OS0 (141), software module 0 (151), and OSm (144) and software. Read access from the CPU executing module m (154).
- Access permission rule entry (314) for AP individual data a (APDA, 266) can be read / written from the CPU executing OS0 (141) and software module 0 (151).
- Access permission rule entry (315) for AP individual data b (APDb, 267) can be read / written from the CPU executing OSm (144) and software module m (154).
- the domain separation firmware (140) sets that all accesses from the CPU executing the above are not allowed.
- OS0 (141) and software module 0 (151) or OSm (144) and software module m (154) read / write data from / to OS communication Data a (OSMa, 268) for OS communication Is executed, a read / write access request for the area is issued to the domain cooperation middleware (150) prior to that.
- OSMa OS communication Data a
- the domain cooperation middleware (150) that has received the read / write request for the area issues the request to the access permission rule entry (316) for the inter-OS communication Dataa (OSMa, 268) using the domain separation firmware (140).
- the read / write access from the CPU executing the OS and the software module is set to be possible, and at that time, the OS0 (141) and the software module 0 (151), and the OSm (144) and the software module m (154) are simultaneously executed. Control is performed so that read / write access from both CPUs is not allowed. Thereafter, acceptance of the read / write access request is returned to the OS and software module that issued the write request.
- the OS and the software module that received the acceptance of the read / write access request for the inter-OS communication Data a read / write data to / from the inter-OS communication Data a (OSMa, 268), and then the domain cooperation middleware (150 ), Read / write completion for the area is issued.
- the domain cooperation middleware (150) that has received the read / write completion for the area uses the domain separation firmware (140) to access the access permission rule entry (316) for the inter-OS communication Dataa (OSMa, 268) as in the initial state.
- OS0 (141), software module 0 (151), and OSm (144) and software module m (154) are all set to be inaccessible from the CPU.
- FIG. 5 shows a CPU (CPU 0 (101) as a hardware resource to be executed for each software module (software module 0 (151) to software module m (154)) in the embodiment shown in FIG. ) To CPUn (108)), an external memory (130), and a built-in memory (160).
- the domain separation firmware (140) corresponds to each OS (OS0 (141) to OSm (144)) with respect to each CPU (CPU0 (101).
- the processing speed is improved by copying necessary data from the external memory (130) to the built-in memory (160) and accessing the built-in memory (160) with respect to the second embodiment.
- communication between OSs using a built-in memory is different.
- the description of the OS and the software module is omitted for the sake of space, but it is the same as FIG. 2 and FIG.
- OS code 1 OSC1, 200
- OS code2 OSC2, 201
- OS individual data a OSDa, 202
- AP code 1 API1
- API2 AP code 2
- AP individual data a APDA, 206
- OSMa inter-OS communication data a
- OS code 1 OSC1, 200
- OS code 2 OSC2
- OS code 1 OSC1
- OS code 2 OSC2
- OSC2 OS code 2
- OSMb inter-OS communication data b
- AP code 2 (APC2, 26 ), The actual copy is transferred to the AP individual data b (APDb, 267) and the inter-OS communication data b (OSMb, 269), and the OS code 1 (OSC1, 240) in the virtual memory space (182) is transferred by the MMU1 (172). ), OS code 2 (OSC2, 241), OS individual data b (OSDb, 243), AP code 1 (APC1, 244), AP code 2 (APC2, 245), AP individual data b (APDb, 247), OS The address is converted to inter-communication data b (OSMb, 249) and accessed from OSm (144) and software module m (154).
- the built-in memory management table (250) includes the free space on the built-in memory (160), the actual state of the memory area on the external memory (130) (OS code 1 (OSC1, 200), OS code 2 (OSC2, 201), OS Individual data a (OSDa, 202), OS individual data b (OSDb, 203), AP code 1 (APC1, 204), AP code 2 (APC2, 205), AP individual data a (APDA, 206), AP individual data b (APDb, 207), inter-OS communication data a (OSMa, 208), inter-OS communication data b (OSMb, 209), etc., are copied on the internal memory (160) (OS code 1 (OSC1, 260) ), OS code 2 (OSC2,261), OS individual da a a (OSDa, 262), OS individual data b (OSDb, 263), AP code 1 (APC1, 264), AP code 2 (APC2, 265), AP individual data a (
- the capacity of the internal memory (160) is usually smaller than the capacity of the external memory, and all the actual copies of the allocated memory area on the external memory (130) are held in the internal memory (160). It is not possible to do. Accordingly, an area is secured on the internal memory (160) in accordance with the access of the software module and the OS, and a copy of the actual memory area is allocated to the area on the external memory (130) that is the access target. If it is clear from the internal memory management table (250) that there is no free space in the internal memory (160), one of the actual copy groups of the memory area already allocated to the internal memory (160) is selected. Is selected, the actual copy of the memory area is saved in the corresponding area of the external memory (130), and the area is secured.
- the access control hardware (120) in the present embodiment uses the combination of the addresses converted by the MMU0 (171) and MMU1 (172) and the CPU, Judgment is made. Accordingly, the rules for determining whether the access control hardware (120) can access are set by the domain separation firmware (140) as follows.
- the access permission rule entry (300) for OS code 1 (OSC1, 200) and OS code 2 (OSC2, 201) includes OS0 (141), software module 0 (151), and OSm (144) and software. Read access from the CPU executing module m (154).
- the access permission rule entry (302) for the OS individual data a (OSDa, 202) can be read / written from the CPU executing the OS0 (141) and the software module 0 (151).
- Access permission rule entry (303) for OS individual data b (OSDb, 203) can be read and written from the CPU executing OSm (144) and software module m (154).
- the access permission rule entry (304) for AP code 1 (APC1, 204) and AP code 2 (APC2, 205) includes OS0 (141), software module 0 (151), and OSm (144) and software. Read access from the CPU executing module m (154).
- Access permission rule entry (306) for AP individual data a is read / write accessible from the CPU executing OS0 (141) and software module 0 (151).
- Access permission rule entry (307) for AP individual data b is read / write accessible from the CPU executing OSm (144) and software module m (154).
- Access permission rule entry (308) for inter-OS communication Data a can be read and written from the CPU executing OS0 (141) and software module 0 (151).
- the access permission rule entry (309) for the inter-OS communication data b is read / write accessible from the CPU executing the OSm (144) and the software module m (154).
- the access permission rule entries for the other external memory areas are entered from the CPU executing OS0 (141) and software module 0 (151), and OSm (144) and software module m (154). No access at all.
- the rules for determining whether or not the access control hardware (121) for the internal memory (160) is accessible are set by the domain separation firmware (140) as follows.
- the access permission rule entry (310) for OS code 1 (OSC1, 260) and OS code 2 (OSC2, 261) includes OS0 (141), software module 0 (151), and OSm (144) and software. Read access from the CPU executing module m (154).
- Access permission rule entry (311) for OS individual data a (OSDa, 262) can be read and written from the CPU executing OS0 (141) and software module 0 (151).
- the access permission rule entry (312) for the OS individual data b (OSDb, 263) is read / write accessible from the CPU executing the OSm (144) and the software module m (154).
- the access permission rule entry (313) for AP code 1 (APC1, 264) and AP code 2 (APC2, 265) includes OS0 (141), software module 0 (151), and OSm (144) and software. Read access from CPU executing module m (154).
- Access permission rule entry (314) for AP individual data a (APDA, 266) can be read / written from the CPU executing OS0 (141) and software module 0 (151).
- Access permission rule entry (315) for AP individual data b can be read / written from the CPU executing OSm (144) and software module m (154).
- Access permission rule entry (316) for inter-OS communication Data a can be read and written from the CPU executing OS0 (141) and software module 0 (151).
- the access permission rule entry (317) for the inter-OS communication data b is read / write accessible from the CPU executing the OSm (144) and the software module m (154).
- the access permission rule entry is set to indicate that all accesses from the CPU executing OS0 (141) and software module 0 (151), and OSm (144) and software module m (154) are not allowed.
- the software module 0 When performing inter-OS communication from the software module 0 (151) to the software module m (154), the software module 0 (151) transmits data to the inter-OS communication Data a (OSMa, 268) on the internal memory (160). When the writing is completed, a transfer request is issued to the domain cooperation middleware (150).
- OSMa inter-OS communication Data a
- the domain cooperation middleware (150) that has received the transfer request uses the domain separation firmware (140) to access the access permission rule entry (316) for the inter-OS communication Data a (OSMa, 268) and the inter-OS communication Data b (OSMb, 269) to the access permission rule entry (317), all accesses from the CPU executing OS0 (141) and software module 0 (151), and OSm (144) and software module m (154) are impossible. , And set. Thereafter, the domain cooperation middleware (150) uses the domain separation firmware (140) to access the access permission rule entry (316) for the inter-OS communication Data a (OSMa, 268) and the inter-OS communication Data b (OSMb, 269).
- the read / write access from the CPU executing the domain linkage middleware (150) is set to the permission rule entry (317), and the data written in the inter-OS communication Data a (OSMa, 268) is communicated between the OSs. Write to the specified location in Data b (OSMb, 269).
- all access from the CPU executing the domain cooperation middleware (150) is set to be impossible, and after completion, access to the inter-OS communication Data a (OSMa, 268) is performed using the domain separation firmware (140).
- the availability rule entry (316) read / write access from the CPU executing the OS0 (141) and the software module 0 (151) is possible, and the access availability rule entry (317) for the inter-OS communication data b (OSMb, 269).
- Sm (144) and the software module m (154) read and write accessible from running CPU to a set, it issues a transfer completion to the software module 0 (151).
- the software module m When performing inter-OS communication from the software module m (154) to the software module 0 (151), the software module m (154) transmits data to the inter-OS communication Data b (OSMa, 269) on the external memory (130). When the writing is completed, a transfer request is issued to the domain cooperation middleware (150).
- OSMa inter-OS communication Data b
- the domain cooperation middleware (150) that has received the transfer request uses the domain separation firmware (140) to access the OS communication Data a (OSMa, 268) and the access permission rule entry (316) and the OS communication Data b (OSMb, 269).
- the domain cooperation middleware (150) writes the data written in the inter-OS communication Data b (OSMb, 269) to the designated location of the inter-OS communication Data a (OSMa, 268), and after completion, the domain is separated.
- the access permission rule entry (316) for the inter-OS communication Data a (OSMa, 268) using the firmware (140) can be read and written from the CPU executing the OS0 (141) and the software module 0 (151).
- the access permission rule entry (317) for the inter-OS communication data b (OSMb, 269) read / write access from the CPU executing the OSm (144) and the software module m (154) is set. For module m (154) Send out a completion.
- the present invention is particularly effective when applied to a multiprocessor system.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
複数OSを搭載した場合、他のOSに影響を与えないように、効率よくメモリ資源を用いることが望まれる。また、OSが異なるといっても、一つのシステム上に搭載されているため、OS間での通信が必要となる。この場合、他のOSに影響を与えないようにデータ通信を行うことが必要となる。そこで、情報処理装置を、第1中央処理装置、第1オペレーティングシステム、及び、メモリの領域のうち一部の第1領域を第1ドメインとして割り当て、第2中央処理装置、第2オペレーティングシステム及びメモリの領域のうち一部の第2領域を第2ドメインとして割り当て、一方のドメインが他のドメインに割当てられた領域にアクセスしないように制御するファームウェアと、第1ドメイン及び第2ドメイン間でデータの通信が必要な場合に、当該通信を制御するミドルウェアとを有する構成とする。
Description
本発明は、複数個の中央演算装置と内蔵メモリを備え、或いは異なるオペレーティングシステムの管理下でプログラムの実行が可能なデータプロセッサに関し、例えば一個の半導体チップに形成されたマルチCPU(中央演算処理装置)を持つ半導体集積回路化されたマイクロプロセッサに適用して有効な技術に関する。
近年、マイクロプロセッサにおける集積化が進み、単一の中央演算処理装置を搭載したマイクロプロセッサを複数搭載したシステムが集積化され、複数の中央演算処理装置を搭載したマイクロプロセッサが開発されている。複数の中央演算処理装置を搭載したマイクロプロセッサにおいては、主にLSIの面積に対する端子数の制約によって、各中央演算処理装置が利用するメモリや入出力装置については、マイクロプロセッサ内で共用化されることが一般的であり、主にマイクロプロセッサ内のバスやコントローラの設計によって実現されている。特に、メモリを共用した場合に例えば、制御ソフトウェアのバグなどにより不正アクセスが発生し、メモリ領域のアクセスの衝突が起こると画像データが正しく処理されないといった問題が発生するので、メモリ領域のアクセスの衝突を回避することが重要になる。回路量のオーバヘッドが少ない不正アドレスへのアクセスの見地、遮断回路を提供する技術が、特許文献1で示されている。
一方、複数の中央演算処理装置を搭載したマイクロプロセッサ上でプログラムを動作させる場合、基本システムであるオペレーティングシステム(OS)も複数になり、それらのOS間でのデータのやりとりや、別のOS上にある機能を複数のCPUやOSの存在を意識させないで実行する方式が必要になってくる。このような状況において、上記のようなマルチプロセッサシステム上でOSとアプリケーションの実行を制御するシステムとしては、例えば、特許文献2に開示されるように、マルチプロセッサ上でシングルプロセッサ向けOSと既存のアプリケーションを動作させ並列処理を実現できるようにする従来技術がある。このように物理的なCPUなどシステム構成資源とOSやアプリケーションとの結びつきを自由にする機構は仮想化と呼ばれ、サーバなどの分野で広く用いられるようになってきている。
特開2004-334410号公報
特開2003-345614号公報
単一チップ上に多数のCPUやIPが集積されたマルチコアシステムでは、複雑化した機能が互いに関連し、同時に動作するため、一つの物理的なデバイスを複数のコアおよびそれらコア上で動作するOSで共有する状況が起こる。この共有において、共有の主体となるOSは、時分割で動作していて一時期には一つのOSだけがアクティブ状態であるということではなく、それぞれが常にアクティブで並列に動作してI/Oデバイスを使用するという状況である。そのような場合、実デバイスを制御するための制御レジスタ群は一つであるので、何らかの形でそれらに対するアクセスを調停し、1セットの制御レジスタ群を仮想的に複数に見せて、複数のOSからのアクセスを処理する必要がある。上記のように、マルチコア環境においては、複数のCPUが同時に稼動し、そのそれぞれが別のOS下にあるということが一般的である。一方、I/O装置やアクセラレータIPなどのデバイスは個数が限られており、それら複数のCPUやOSで共有を行いたいという要求がある。そのような共有の状況としては、例えばハードディスクを装備したカーナビゲーションシステムにおいて、一つのハードディスク装置を地図データの格納と音楽データの格納に用い、それらを別々のプロセッサで動作する経路探索と音楽再生で同時にアクセスしたい場合などがある。
特に、複数OSを搭載した場合、一つのOSが管理するハードウェア資源は、そのOS以外からアクセスされないことを前提として作られており、そのOSに割り当てられた内蔵メモリの一部領域もしくは外部メモリの一部領域に対する、そのOS以外からアクセス、特にデータが書き換えられる様な想定外の事象は、そのOS並びにその上で実行するソフトウェアモジュールに対して異常動作を引き起こす要因となる。従って、内蔵メモリまたは外部メモリにおいては、複数のOSで共有しないように分離して管理するのが望ましい。しかしながら、内蔵メモリや外部メモリは、コスト等の観点から無限に搭載することはできない。従って、他のOSに影響を与えないように、効率よくメモリ資源を用いることが望まれる。また、OSが異なるといっても、一つのシステム上に搭載されているため、OS間での通信が必要となる。この場合、他のOSに影響を与えないようにデータ通信を行うことが必要となる。
上記の課題に対して本発明においては、第1中央処理装置と、第2中央処理装置と、第1中央処理装置にて実行される第1オペレーティングシステムと、第2中央処理装置にて実行される第2オペレーティングシステムと、第1中央処理装置及び第2中央処理装置にアクセスされるメモリとを有する情報処理装置であって、情報処理装置を、第1中央処理装置、第1オペレーティングシステム、及び、メモリの領域のうち一部の第1領域を第1ドメインとして割り当て、第2中央処理装置、第2オペレーティングシステム及びメモリの領域のうち一部の第2領域を第2ドメインとして割り当て、一方のドメインが他のドメインに割当てられた領域にアクセスしないように制御するファームウェアと、第1ドメイン及び第2ドメイン間でデータの通信が必要な場合に、当該通信を制御するミドルウェアとを有する。
更に望ましくは、ファームウェアからの設定に基づいて、一方のドメインが他方のドメインに割当てられた領域にアクセスする際に、そのアクセスを遮断するアクセス制御モジュールを更に具備する。
また、第1オペレーティングシステムのコードと第2オペレーティングシステムのコードが共有できる場合において、メモリは、メモリの領域の一部の第3領域に、共有できるコードを保持し、ファームウェアは、第3領域に対し、第1ドメイン及び第2ドメインからリードアクセスを許可し、ライトアクセスを許可しないように制御する。
また、メモリは、第1ドメイン及び第2ドメイン間でデータの通信を行う場合に、通信用データを格納する第4領域を含み、ファームウェアは、第1及び第2ドメインから通信の要求がない場合には、第4領域を第1ドメイン及び第2ドメインからアクセスできないように制御し、ミドルウェアは、第1ドメインが第2ドメインにデータの通信を行う旨の要求を受けた場合に、第1ドメインに第4領域へのアクセスを許可し、第2ドメインに第4領域へのアクセスを許可しないようにファームウェアを制御した状態で、第1ドメインに第4領域へのアクセスを許可する。
また、メモリは、第1ドメインが第2ドメインにデータの通信を行う場合に、通信用のデータを書き込む第5領域と、第2ドメインが第1ドメインにデータの通信を行う場合に、通信用のデータを書き込む第6領域とを有し、ファームウェアは、第5領域に対して第1ドメインがアクセス可能で、第2ドメインはアクセス不可能になるように制御し、第6領域に対して第2ドメインがアクセス可能で、第1ドメインがアクセス不可能となるように制御し、ミドルウェアは、第1ドメインが第2ドメインにデータの通信を行う旨の要求を受けた場合に、第1ドメインが第5領域に通信用のデータを書き込んだ後、第5領域及び第6領域が第1及び第2ドメインからアクセス不可能となるようにファームウェアに指示し、その後、第5領域から第6領域へのデータを転送する。
本願において開示される発明によれば、マルチコア環境において、ソフトウェア開発に要する期間が短縮でき、また入出力処理の効率化が可能になる。
100:マルチコアプロセッサ、101~108:CPU、110:プロセッサ内バス、120及び121:アクセス制御ハードウェア、130:外部メモリ、140:ドメイン分離ファームウェア、141~4:OS、150:ドメイン連携ミドルウェア、151~4:ソフトウェアモジュール、160:内蔵メモリ、171及び172:MMU(メモリ管理ユニット)、181及び182:仮想メモリ空間、200~208:外部メモリの領域、210~218及び220~229:各OSの仮想メモリ空間の領域、250:内蔵メモリ管理テーブル、260~269:内蔵メモリの領域、300~309及び310~319:アクセス制御ハードウェアの設定領域。
図1は、本発明における情報処理装置のハードウェアとソフトウェアの構成の一例である。
本実施例における情報処理装置のハードウェアの構成要素であるマルチコアプロセッサ(100)は、n個の中央演算処理装置(以下、「CPU」と呼ぶ。)(CPU0(101)~CPUn(108))と外部メモリ(130)と内蔵メモリ(160)、並びにアクセス制御ハードウェア(120)とがプロセッサ内バス(110)で接続された構成を備え、各CPUからは、プロセッサ内バス(110)を介して、外部メモリ(130)ならびに内蔵メモリ(160)の全ての領域に対するアクセスを可能とする。また、図示していないが、外部メモリを制御するメモリ制御装置やシリアルIO等の入出力制御装置がプロセッサ内バスに接続される。なお、入出力制御装置は、外部メモリ(130)や内蔵メモリ(160)と同様に一つのメモリ空間の中に含まれ、その制御は同じになるため、外部メモリや内蔵メモリに代表されるものとし、以下、入出力制御装置に関する説明は省略する。
アクセス制御ハードウェア(120)は、n個のCPU(CPU0(101)~CPUn(108))のそれぞれがプロセッサ内バス(110)を介して外部メモリ(130)、内蔵メモリ(160)をアクセスする際に、プロセッサ内バス(110)上に生成するトランザクションを監視し、個々のトランザクションに対して、あらかじめ指定されたアクセスの可否を定めたルールに基づきアクセスの可否を判断する。ここで、前記アクセスの可否を定めたルールにもとづき許可されたアクセスに関するトランザクションに関しては通常通り処理されるが、前記ルールにもとづき許可されていないアクセスに関するトランザクションに関しては、アクセス違反として無効化(遮断)されるとともに、アクセス違反の発生に対する例外処理を起動するために、当該トランザクションを生成したCPUに対して割込み信号を送ることを特徴とする。また、アクセス制御ハードウェア(120)は、個々のCPUから内蔵メモリと外部メモリの領域に対するアクセスの可否をその先頭アドレスと領域のサイズにより指定される。また、アクセスの可否は、各OS毎にリードアクセス/ライトアクセスの夫々について指定される。なお、各領域に対する設定は、リードアクセス/ライトアクセスが許可されるOSを指定するのみとし、設定されていないOSについては、アクセスを許可しないようにする。これにより、アクセス制御ハードウェア(120)を小さくすることが可能となる。
本実施例の情報処理装置におけるソフトウェア構成は、ドメイン分離ファームウェア(140)が、前記マルチコアプロセッサ(100)上でm個のOS(OS0(141)、OS1(142)、OS2(143)~OSm(144))を実行するために必要となる環境を提供するためにハードウェア資源の管理を実施することを特徴とする。
具体的には、本実施例では、前記ドメイン分離ファームウェア(140)及び各OS0~m(141~144)は、ハードウェア資源の管理のため、以下のことを行う。
(1)ドメイン分離ファームウェア(140)は、OS0(141)に対し、CPU0(101)とCPU1(102)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOS0(141)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール0(151)に対してプログラムを実行するための環境を提供する。
(2)ドメイン分離ファームウェア(140)は、OS1(142)に対し、CPU2(103)とCPU3(104)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOS1(142)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール1(152)に対してプログラムを実行するための環境を提供する。
(3)ドメイン分離ファームウェア(140)は、OS2(143)に対し、CPU4(105)とCPU5(106)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOS2(143)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール2(153)に対してプログラムを実行するための環境を提供する。
(4)以下同様に、ドメイン分離ファームウェア(140)は、OSm(144)に対し、CPUn-1(107)とCPUn(108)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOSm(144)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュールm(154)に対してプログラムを実行するための環境を提供する。
(1)ドメイン分離ファームウェア(140)は、OS0(141)に対し、CPU0(101)とCPU1(102)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOS0(141)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール0(151)に対してプログラムを実行するための環境を提供する。
(2)ドメイン分離ファームウェア(140)は、OS1(142)に対し、CPU2(103)とCPU3(104)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOS1(142)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール1(152)に対してプログラムを実行するための環境を提供する。
(3)ドメイン分離ファームウェア(140)は、OS2(143)に対し、CPU4(105)とCPU5(106)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOS2(143)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール2(153)に対してプログラムを実行するための環境を提供する。
(4)以下同様に、ドメイン分離ファームウェア(140)は、OSm(144)に対し、CPUn-1(107)とCPUn(108)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOSm(144)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュールm(154)に対してプログラムを実行するための環境を提供する。
また、前記ドメイン分離ファームウェア(140)は、前記アクセス制御ハードウェア(120)に対しアクセスの可否を判断するルールの設定を実施する。
ここで、通常のOSは、そのOSが管理するハードウェア資源は、そのOS以外からアクセスされないことを前提として作られており、そのOSに割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対する、そのOS以外からアクセス、特にデータが書き換えられる様な想定外の事象は、そのOS並びにその上で実行するソフトウェアモジュールに対して異常動作を引き起こす要因となる。
この要因を防ぐために本実施例では、ドメイン分離ファームウェア(140)は、アクセス制御ハードウェア(120)に対し、アクセスの可否を判断するルールを以下のように設定する。
(1)OS0(141)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS1(142)並びにソフトウェアモジュール1(152)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU2(103)とCPU3(104)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS2(143)並びにソフトウェアモジュール2(153)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU4(105)とCPU5(106)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OSm(144)並びにソフトウェアモジュールm(154)からアクセス、さらにはデータの書き換えが不可能とするよう、CPUn-1(107)とCPUn(108)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(2)OS1(142)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS0(141)並びにソフトウェアモジュール0(151)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU0(101)とCPU1(102)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS2(143)並びにソフトウェアモジュール2(153)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU4(105)とCPU5(106)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OSm(144)並びにソフトウェアモジュールm(154)からアクセス、さらにはデータの書き換えが不可能とするよう、CPUn-1(107)とCPUn(108)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(3)OS2(143)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS0(141)並びにソフトウェアモジュール0(151)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU0(101)とCPU1(102)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS1(142)並びにソフトウェアモジュール1(152)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU2(103)とCPU3(104)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OSm(144)並びにソフトウェアモジュールm(154)からアクセス、さらにはデータの書き換えが不可能とするよう、CPUn-1(107)とCPUn(108)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(4)以下同様にしてOSm(144)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS0(141)並びにソフトウェアモジュール0(151)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU0(101)とCPU1(102)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS1(142)並びにソフトウェアモジュール1(152)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU2(103)とCPU3(104)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OS2(143)並びにソフトウェアモジュール2(153)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU4(105)とCPU5(106)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(1)OS0(141)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS1(142)並びにソフトウェアモジュール1(152)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU2(103)とCPU3(104)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS2(143)並びにソフトウェアモジュール2(153)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU4(105)とCPU5(106)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OSm(144)並びにソフトウェアモジュールm(154)からアクセス、さらにはデータの書き換えが不可能とするよう、CPUn-1(107)とCPUn(108)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(2)OS1(142)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS0(141)並びにソフトウェアモジュール0(151)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU0(101)とCPU1(102)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS2(143)並びにソフトウェアモジュール2(153)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU4(105)とCPU5(106)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OSm(144)並びにソフトウェアモジュールm(154)からアクセス、さらにはデータの書き換えが不可能とするよう、CPUn-1(107)とCPUn(108)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(3)OS2(143)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS0(141)並びにソフトウェアモジュール0(151)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU0(101)とCPU1(102)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS1(142)並びにソフトウェアモジュール1(152)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU2(103)とCPU3(104)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OSm(144)並びにソフトウェアモジュールm(154)からアクセス、さらにはデータの書き換えが不可能とするよう、CPUn-1(107)とCPUn(108)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(4)以下同様にしてOSm(144)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS0(141)並びにソフトウェアモジュール0(151)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU0(101)とCPU1(102)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS1(142)並びにソフトウェアモジュール1(152)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU2(103)とCPU3(104)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OS2(143)並びにソフトウェアモジュール2(153)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU4(105)とCPU5(106)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
このように設定することにより、各OSに割当てられた資源は、基本的に他のOSからアクセスされないため、他のOSの不正なアクセスによる異常動作を防止することが可能となる。
また、本実施例では、OS間の通信を行うためにドメイン連携ミドルウェア(150)を実装する。ドメイン連携ミドルウェア(150)は、本実施例のアクセス制御ハードウェア(120)とドメイン分離ファームウェア(140)を活用し、OS0(141)とソフトウェアモジュール0(151)とが実行するためのハードウェア資源、OS1(142)とソフトウェアモジュール1(152)とが実行するためのハードウェア資源、OS2(143)とソフトウェアモジュール2(153)とが実行するためのハードウェア資源、並びに以下同様にOSm(144)とソフトウェアモジュールm(154)とが実行するためのハードウェア資源が分離されているシステム構成において、ソフトウェアモジュール(ソフトウェアモジュール0(151)、ソフトウェアモジュール1(152)、ソフトウェアモジュール2(153)~ソフトウェアモジュールm(154))のそれぞれの間で処理の連携を実施するための通信機能を提供する。
このように新たにドメイン連携ミドルウェア(150)を設ける理由は、実装を容易化するためである。即ち、ドメイン分離ファームウェアは、基本的に各OS間を確実に分離することにある。一方、OS間での連携は、分離した各OS間をつなぐことになる。このように全く機能が異なるものをドメイン分離ファームウェアに取り込むと、OS間通信が不要な場合であっても分離した各OSの間に穴をあけられることになり、好ましくない。一方、OSにOS間通信を行うための機能を実装しようとすると、他のOSの状況等を考慮するように変更しなければならず、その改変に時間がかかる。それに対し、本願のようにドメイン連携ミドルウェアを新たに設け、OSからOS間通信を行いたい旨の要求を出すようにし、全体を把握しているドメイン連携ミドルウェアでその可否を判断し、通信に必要な設定をドメイン分離ファームウェアにする構成とすることにより、OS間通信が必要な場合のみ、当該ドメイン連携ファームウェアを実装すればよいことになる。
なお、ドメイン分離ファームウェア(140)及びドメイン連携ミドルウェア(150)は、OSが必要な場合に読み出す構成となっており、その読み出したOSが所属するドメイン内のCPUにより実行されてもよいし、異なるCPUで実行しても良い。
<実施例1>
図2は、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)~ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)~CPUn(108))と外部メモリ(130)に限定し、ドメイン分離ファームウェア(140)は各OS(OS0(141)~OSm(144))に対し、CPU(CPU0(101)~CPUn(108))と外部メモリ(130)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。
図2は、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)~ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)~CPUn(108))と外部メモリ(130)に限定し、ドメイン分離ファームウェア(140)は各OS(OS0(141)~OSm(144))に対し、CPU(CPU0(101)~CPUn(108))と外部メモリ(130)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。
仮想メモリ空間(181)は、OS0(141)とソフトウェアモジュール0(151)が実行するためのメモリ領域を構成したものであり、仮想メモリ空間(182)は、OSm(144)とソフトウェアモジュールm(154)が実行するためのメモリ領域を構成したものであり、それぞれの実態は外部メモリ(130)に存在する。
OS0(141)とソフトウェアモジュール0(151)が実行するためのメモリ領域として外部メモリ(130)に割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data a(OSDa,202)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data a(APDa,206)、OS間通信data a(OSMa,208)で、これらは、MMU0(171)により仮想メモリ空間(181)上のOS code 1(OSC1,210)、OS code 2(OSC2,211)、OS個別data a(OSDa,212)、AP code 1(APC1,214)、AP code 2(APC2,215)、AP個別data a(APDa,216)、OS間通信data a(OSMa,218)にアドレス変換されて、OS0(141)とソフトウェアモジュール0(151)からアクセスされる。
同様にOSm(144)とソフトウェアモジュールm(154)が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data b(OSDb,203)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data b(APDb,207)、OS間通信data a(OSMa,208)で、これらは、MMU1(172)により仮想メモリ空間(182)上のOS code 1(OSC1,220)、OS code 2(OSC2,221)、OS個別data b(OSDb,223)、AP code 1(APC1,224)、AP code 2(APC2,225)、AP個別data b(APDb,227)、OS間通信data a(OSMa,228)にアドレス変換されて、OSm(144)とソフトウェアモジュールm(154)からアクセスされる。
この様なハードウェア資源のソフトウェアに対する割り当てに対して、本実施例におけるアクセス制御ハードウェア(120)は、MMU0(171)およびMMU1(172)により変換されたアドレスとCPUとの組み合わせにより、アクセスの可否を判断する。具体的には、アクセス制御ハードウェア(120)がアクセスの可否を判断するルールは、以下の通りとなり、それぞれドメイン分離ファームウェア(140)が設定する。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)それ以外の外部メモリの領域に対するアクセス可否ルールエントリ(アクセス可否ルールエントリ(310)、アクセス可否ルールエントリ(311)、アクセス可否ルールエントリ(312)、アクセス可否ルールエントリ(313))には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)それ以外の外部メモリの領域に対するアクセス可否ルールエントリ(アクセス可否ルールエントリ(310)、アクセス可否ルールエントリ(311)、アクセス可否ルールエントリ(312)、アクセス可否ルールエントリ(313))には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
また、OS間通信data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、初期状態として、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、とドメイン分離ファームウェア(140)が設定する。
なお、アクセス制御モジュール(120)に記載された記号の意味は、”R”がリードアクセス許可、”W”がライトアクセス許可、”0”がOS0に管理されるCPUからのアクセスが対象、”m”がOSmに管理されているCPUからのアクセスが対象である。従って、例えば、”R0m”となっているものは、OS0及びOSmが管理しているCPUからリードアクセスが可能(ライトアクセスは不可能)という意味となる。
ここで、特徴的なものは、OS code 1及び2、AP code 1及び2の領域(310,313)に対し、OS0とOSmの両方が管理しているCPUからリードアクセスできるようにアクセス制御ハードウェア(120)が設定されていることである。上述したとおり、各OSは、夫々が単独で動作し、他のOSからアクセスされないことが前提となっている。従って、夫々が管理する領域が完全に分離していることが望ましい。しかしながら、他のOSからのアクセスが異常動作の原因となるのは、データが書き換わってしまうことに起因する。ここで、CPUの動作を考えると、OS用のコードやアプリケーション用のコードは、各CPUからはリードアクセスのみで充分である。そこで、本発明では、OS用のコードとアプリケーション用のコードを共有できるものは、複数のOS間で共有し、かつ、アクセス制御ハードウェア(120)にて、リードアクセスのみ可と設定することにより、異常動作の要因となるライトアクセスを遮断し、安全に、かつ、効率よくメモリ領域を使用することを可能としている。なお、この点については、他の実施例も同様である。
続いて、OS間の通信について詳しく言及する。OS0(141)とソフトウェアモジュール0(151)、もしくはOSm(144)とソフトウェアモジュールm(154)の何れかがOS間通信のためにOS間通信Data a(OSMa,208)に対し、データの読み書きを実施する際は、それに先立ちドメイン連携ミドルウェア(150)に対して当該領域に対する読み書きアクセス要求を出す。当該領域に対する読み書き要求を受け取ったドメイン連携ミドルウェア(150)は、現在OS間通信を行ってよいかを判断し、ドメイン分離ファームウェア(140)を介して、OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)に、当該要求を出したOSとソフトウェアモジュールを実行しているCPUからの読み書きアクセス可と設定し、その際、同時にOS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)の実行する双方のCPUからの読み書きアクセス可とすることのないよう制御する。その後、書き込み要求を出したOSとソフトウェアモジュールに対し、読み書きアクセス要求の受理を返す。
OS間通信Data a(OSMa,208)に対する読み書きアクセス要求の受理を受け取ったOSとソフトウェアモジュールは、OS間通信Data a(OSMa,208)に対しデータの読み書きを実施した後、ドメイン連携ミドルウェア(150)に対し、当該領域に対する読み書き完了を出す。
当該領域に対する読み書き完了を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を介して、OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)に、初期状態と同様に、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、を設定する。
以上の通り、本実施例では、OS間通信で用いる領域(208)を全てのOS(CPU)に対しデフォルトでリードアクセス/ライトアクセスを不可とし、必要に応じてドメイン連携ミドルウェア及びドメイン分離ファームウェアを用いて、要求を出したOS(CPU)のみにアクセス許可を与える。これにより、通信用に用いるデータを他のOS(CPU)がアクセスし、情報を読み出す、又は、情報を破壊するということから守ることが可能となる。
<実施例2>
図3は、図2と同様に、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)~ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)~CPUn(108))と外部メモリ(130)に限定し、ドメイン分離ファームウェア(140)は各OS(OS0(141)~OSm(144))に対し、CPU(CPU0(101)~CPUn(108))と外部メモリ(130)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。実施例1では、OS間通信を行うメモリ領域(208)をOS0とOSmで共有していたが、本実施例では、夫々個別の領域(208、209)を有している。以下、本実施例について説明する。
図3は、図2と同様に、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)~ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)~CPUn(108))と外部メモリ(130)に限定し、ドメイン分離ファームウェア(140)は各OS(OS0(141)~OSm(144))に対し、CPU(CPU0(101)~CPUn(108))と外部メモリ(130)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。実施例1では、OS間通信を行うメモリ領域(208)をOS0とOSmで共有していたが、本実施例では、夫々個別の領域(208、209)を有している。以下、本実施例について説明する。
仮想メモリ空間(181)は、OS0(141)とソフトウェアモジュール0(151)が実行するためのメモリ領域を構成したものであり、仮想メモリ空間(182)は、OSm(144)とソフトウェアモジュールm(154)が実行するためのメモリ領域を構成したものであり、それぞれの実態は外部メモリ(130)に存在する。
OS0(141)とソフトウェアモジュール0(151)が実行するためのメモリ領域として外部メモリ(130)に割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data a(OSDa,202)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data a(APDa,206)、OS間通信data a(OSMa,208)で、これらは、MMU0(171)により仮想メモリ空間(181)上のOS code 1(OSC1,210)、OS code 2(OSC2,211)、OS個別data a(OSDa,212)、AP code 1(APC1,214)、AP code 2(APC2,215)、AP個別data a(APDa,216)、OS間通信data a(OSMa,218)にアドレス変換されて、OS0(141)とソフトウェアモジュール0(151)からアクセスされる。
同様に、OSm(144)とソフトウェアモジュールm(154)が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data b(OSDb,203)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data b(APDb,207)、OS間通信data b(OSMb,209)で、これらは、MMU1(172)により仮想メモリ空間(182)上のOS code 1(OSC1,220)、OS code 2(OSC2,221)、OS個別data b(OSDb,223)、AP code 1(APC1,224)、AP code 2(APC2,225)、AP個別data b(APDb,227)、OS間通信data b(OSMb,229)にアドレス変換されて、OSm(144)とソフトウェアモジュールm(154)からアクセスされる。
この様なハードウェア資源のソフトウェアに対する割り当てに対して、本実施例におけるアクセス制御ハードウェア(120)は、MMU0(171)およびMMU1(172)により変換されたアドレスとCPUとの組み合わせにより、アクセスの可否を判断する。従って、アクセス制御ハードウェア(120)がアクセスの可否を判断するルールは、以下の通りとなり、それぞれドメイン分離ファームウェア(140)が設定する。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(APC2,205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)それ以外の外部メモリの領域に対するアクセス可否ルールエントリ(アクセス可否ルールエントリ(310)、アクセス可否ルールエントリ(311)、アクセス可否ルールエントリ(312)、アクセス可否ルールエントリ(313))には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
(8)OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(9)OS間通信data b(OSMb,209)に対するアクセス可否ルールエントリ(309)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(APC2,205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)それ以外の外部メモリの領域に対するアクセス可否ルールエントリ(アクセス可否ルールエントリ(310)、アクセス可否ルールエントリ(311)、アクセス可否ルールエントリ(312)、アクセス可否ルールエントリ(313))には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
(8)OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(9)OS間通信data b(OSMb,209)に対するアクセス可否ルールエントリ(309)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
本実施例では、ソフトウェアモジュール0(151)からソフトウェアモジュールm(154)へOS間通信を実施する際は、ソフトウェアモジュール0(151)が外部メモリ(130)上のOS間通信Data a(OSMa,208)にデータの書き込みが完了した時点で、ドメイン連携ミドルウェア(150)に転送要求を出す。
転送要求を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)とOS間通信Data b(OSMb,209)に対するアクセス可否ルールエントリ(309)とに対しOS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、と設定する。その後、ドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)とOS間通信Data b(OSMb,209)に対するアクセス可否ルールエントリ(309)に、ドメイン連携ミドルウェア(150)自身を実行しているCPUからの読み書きアクセス可と設定し、OS間通信Data a(OSMa,208)に書き込まれたデータをOS間通信Data b(OSMb,209)の指定された場所に書き出す。その後、再びドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)とOS間通信Data b(OSMb,209)に対するアクセス可否ルールエントリ(309)に、ドメイン連携ミドルウェア(150)を実行しているCPUからの全てのアクセス不可と設定し、完了した後、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可、OS間通信data b(OSMb,209)に対するアクセス可否ルールエントリ(309)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可、と、設定し、ソフトウェアモジュール0(151)に対し、転送完了を出す。
ソフトウェアモジュールm(154)からソフトウェアモジュール0(151)へOS間通信を実施する際は、ソフトウェアモジュールm(154)が外部メモリ(130)上のOS間通信Data b(OSMb,209)にデータの書き込みが完了した時点で、ドメイン連携ミドルウェア(150)に転送要求を出す。
転送要求を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いて、OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)とOS間通信Data b(OSMb,209)に対するアクセス可否ルールエントリ(309)とに対しOS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、と設定する。その後、ドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)とOS間通信Data b(OSMb,209)に対するアクセス可否ルールエントリ(309)に、ドメイン連携ミドルウェア(150)自身を実行しているCPUからの読み書きアクセス可と設定し、OS間通信Data b(OSMb,209)に書き込まれたデータをOS間通信Data a(OSMa,208)の指定された場所に書き出す。その後、再びドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)とOS間通信Data b(OSMb,209)に対するアクセス可否ルールエントリ(309)に、ドメイン連携ミドルウェア(150)を実行しているCPUからの全てのアクセス不可と設定し、完了した後、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可、OS間通信data b(OSMb,209)に対するアクセス可否ルールエントリ(309)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可、と、設定し、ソフトウェアモジュールm(154)に対し、転送完了を出す。
以上の通り、本実施例においても、OS間通信用のデータを転送している間は、すべてのOS(CPU)からのアクセスを不可とするため、通信用データが破壊されることがない。また、実施例1に対し、各OSは、通信の許可を受ける前に、通信用のデータを自分の領域に書き込むことができるため、次の処理に移ることが可能となり、高速に動作することが可能となる。
<実施例3>
図4は、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)~ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)~CPUn(108))と外部メモリ(130)と内蔵メモリ(160)を持ち、ドメイン分離ファームウェア(140)は各OS(OS0(141)~OSm(144))に対し、CPU(CPU0(101)~CPUn(108))、外部メモリ(130)を分割したもの、内蔵メモリ(160)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。即ち、本実施例では、実施例1に対し、外部メモリ(130)から内蔵メモリ(160)に必要なデータをコピーし、その内蔵メモリ(160)に対して、CPUがアクセスすることにより処理速度を向上させ、加えて内蔵メモリを用いてOS間通信を行う点が異なる。なお、紙面の都合上、OSとソフトウェアモジュールについては記載を省略しているが、この部分は、図2又は図3と同様である。
図4は、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)~ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)~CPUn(108))と外部メモリ(130)と内蔵メモリ(160)を持ち、ドメイン分離ファームウェア(140)は各OS(OS0(141)~OSm(144))に対し、CPU(CPU0(101)~CPUn(108))、外部メモリ(130)を分割したもの、内蔵メモリ(160)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。即ち、本実施例では、実施例1に対し、外部メモリ(130)から内蔵メモリ(160)に必要なデータをコピーし、その内蔵メモリ(160)に対して、CPUがアクセスすることにより処理速度を向上させ、加えて内蔵メモリを用いてOS間通信を行う点が異なる。なお、紙面の都合上、OSとソフトウェアモジュールについては記載を省略しているが、この部分は、図2又は図3と同様である。
OS0(141)とソフトウェアモジュール0(151)が実行するためのメモリ領域として外部メモリ(130)に割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data a(OSDa,202)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data a(APDa,206)、OS間通信data a(OSMa,208)で、これらは、内蔵メモリ(160)上のOS code 1(OSC1,260)、OS code 2(OSC2,261)、OS個別data a(OSDa,262)、AP code 1(APC1,264)、AP code 2(APC2,265)、AP個別data a(APDa,266)、OS間通信data a(OSMa,268)に実態のコピーが移され、MMU0(171)により仮想メモリ空間(181)上のOS code 1(OSC1,230)、OS code 2(OSC2,231)、OS個別data a(OSDa,232)、AP code 1(APC1,234)、AP code 2(APC2,235)、AP個別data a(APDa,236)、OS間通信data a(OSMa,238)にアドレス変換されて、OS0(141)とソフトウェアモジュール0(151)からアクセスされる。
同様に、OSm(144)とソフトウェアモジュールm(154)が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data b(OSDb,203)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data b(APDb,207)、OS間通信data a(OSMa,208)で、これらは、内蔵メモリ(160)上のOS code 1(OSC1,260)、OS code 2(OSC2,261)、OS個別data b(OSDb,263)、AP code 1(APC1,264)、AP code 2(APC2,265)、AP個別data b(APDb,267)、OS間通信data a(OSMa,268)に実態のコピーが移され、MMU1(172)により仮想メモリ空間(182)上のOS code 1(OSC1,240)、OS code 2(OSC2,241)、OS個別data b(OSDb,243)、AP code 1(APC1,244)、AP code 2(APC2,245)、AP個別data b(APDb,247)、OS間通信data a(OSMa,248)にアドレス変換されて、OSm(144)とソフトウェアモジュールm(154)からアクセスされる。
内蔵メモリ管理テーブル(250)は、内蔵メモリ(160)上の空き領域、外部メモリ(130)上のメモリ領域の実態(OS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data a(OSDa,202)、OS個別data b(OSDb,203)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data a(APDa,206)、AP個別data b(APDb,207)、OS間通信data a(OSMa,208)等)のコピーが、内部メモリ(160)上のどこ(OS code 1(OSC1,260)、OS code 2(OSC2,261)、OS個別data a(OSDa,262)、OS個別data b(OSDb,263)、AP code 1(APC1,264)、AP code 2(APC2,265)、AP個別data a(APDa,266)、AP個別data b(APDb,267)、OS間通信data a(OSMa,268)等)に移されたか、を管理する。
ここで、通常内蔵メモリ(160)の容量は、外部メモリの容量に比べて小さく、外部メモリ(130)上にメモリ領域として割り当てられたものの実態のコピーを、全てを内蔵メモリ(160)に保持することは可能ではない。従って、ソフトウェアモジュールとOSのアクセスに応じて、内蔵メモリ(160)上に領域を確保し、そのアクセスの対象である外部メモリ(130)上にメモリ領域の実態のコピーを、当該領域に割り付ける。ここで、内蔵メモリ管理テーブル(TBL,250)により内蔵メモリ(160)に空きがないことが明らかな場合は、既に内蔵メモリ(160)に割り付けられているメモリ領域の実態のコピー群の中から一つを選択し、当該メモリ領域の実態のコピーを外部メモリ(130)の該当する領域に退避し、領域を確保する。
この様なハードウェア資源のソフトウェアに対する割り当てに対して、本実施例におけるアクセス制御ハードウェア(120)は、MMU0(171)およびMMU1(172)により変換されたアドレスとCPUとの組み合わせにより、アクセスの可否を判断する。従って、アクセス制御ハードウェア(120)がアクセスの可否を判断するルールは、以下の通り、それぞれドメイン分離ファームウェア(140)が設定する。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(APC2,205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)それ以外の外部メモリの領域に対するアクセス可否ルールエントリには、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(APC2,205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)それ以外の外部メモリの領域に対するアクセス可否ルールエントリには、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
更に、内蔵メモリ(160)を対象とするアクセス制御ハードウェア(121)がアクセスの可否を判断するルールは以下の通り、それぞれドメイン分離ファームウェア(140)が設定する。
(1)OS code 1(OSC1,260)とOS code 2(OSC2,261)に対するアクセス可否ルールエントリ(310)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,262)に対するアクセス可否ルールエントリ(311)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,263)に対するアクセス可否ルールエントリ(312)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,264)とAP code 2(APC2,265)に対するアクセス可否ルールエントリ(313)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,266)に対するアクセス可否ルールエントリ(314)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,267)に対するアクセス可否ルールエントリ(315)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(1)OS code 1(OSC1,260)とOS code 2(OSC2,261)に対するアクセス可否ルールエントリ(310)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,262)に対するアクセス可否ルールエントリ(311)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,263)に対するアクセス可否ルールエントリ(312)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,264)とAP code 2(APC2,265)に対するアクセス可否ルールエントリ(313)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,266)に対するアクセス可否ルールエントリ(314)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,267)に対するアクセス可否ルールエントリ(315)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
なお、本実施例では、全ての内蔵メモリの領域を用いているため、図面上、存在していないが、もし、使用しない内蔵メモリの領域があるのであれば、それ以外の内蔵メモリの領域に対するアクセス可否ルールエントリには、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、と設定する。
ここで、OS間通信data a(OSMa,268)に対するアクセス可否ルールエントリ(316)には、初期状態として、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、とドメイン分離ファームウェア(140)が設定する。
OS0(141)とソフトウェアモジュール0(151)、もしくはOSm(144)とソフトウェアモジュールm(154)の何れかがOS間通信のためにOS間通信Data a(OSMa,268)に対し、データの読み書きを実施する際は、それに先立ちドメイン連携ミドルウェア(150)に対して当該領域に対する読み書きアクセス要求を出す。
当該領域に対する読み書き要求を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)に、当該要求を出したOSとソフトウェアモジュールを実行しているCPUからの読み書きアクセス可と設定し、その際、同時にOS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)の実行する双方のCPUからの読み書きアクセス可とすることのないよう制御する。その後、書き込み要求を出したOSとソフトウェアモジュールに対し、読み書きアクセス要求の受理を返す。
OS間通信Data a(OSMa,268)に対する読み書きアクセス要求の受理を受け取ったOSとソフトウェアモジュールは、OS間通信Data a(OSMa,268)に対しデータの読み書きを実施した後、ドメイン連携ミドルウェア(150)に対し、当該領域に対する読み書き完了を出す。
当該領域に対する読み書き完了を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)に、初期状態と同様に、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、を設定する。
以上の通り、本実施例では、内蔵メモリ(160)に必要なデータをコピーし、その内蔵メモリ(160)に対して、CPUがアクセスすることにより処理速度を向上させることが可能となる。この場合、アクセス制御ハードウェア及びドメイン分離ファームウェアでの管理を内蔵メモリ及び外部メモリの両方に設けることにより、各CPUは、内蔵メモリのみならず外部メモリへも直接アクセスすることが可能となり、内蔵メモリを介さない処理を行うことが可能となる。また、安全なOS間通信を行う際には、ドメイン分離ファームウェアによりアクセスを許可するOS(CPU)を変更する必要がある。そのため、OS間通信に関する外部メモリの領域は、全てのOS(CPU)からの直接アクセスは遮断し、内蔵メモリの領域のみで行う構成とする。これにより、ドメイン連携ミドルウェアにおけるOS間通信の管理が簡単になる。
<実施例4>
図5は、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)~ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)~CPUn(108))と外部メモリ(130)と内蔵メモリ(160)を持ち、ドメイン分離ファームウェア(140)は各OS(OS0(141)~OSm(144))に対し、CPU(CPU0(101)~CPUn(108))、外部メモリ(130)を分割したもの、内蔵メモリ(160)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。本実施例では、実施例2に対し、外部メモリ(130)から内蔵メモリ(160)に必要なデータをコピーし、その内蔵メモリ(160)に対して、CPUがアクセスすることにより処理速度を向上させ、加えて内蔵メモリを用いてOS間通信を行うことが相違する。なお、本図では、紙面の都合上、OSとソフトウェアモジュールの記載は省略しているが、図2及び図3と同様である。
図5は、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)~ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)~CPUn(108))と外部メモリ(130)と内蔵メモリ(160)を持ち、ドメイン分離ファームウェア(140)は各OS(OS0(141)~OSm(144))に対し、CPU(CPU0(101)~CPUn(108))、外部メモリ(130)を分割したもの、内蔵メモリ(160)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。本実施例では、実施例2に対し、外部メモリ(130)から内蔵メモリ(160)に必要なデータをコピーし、その内蔵メモリ(160)に対して、CPUがアクセスすることにより処理速度を向上させ、加えて内蔵メモリを用いてOS間通信を行うことが相違する。なお、本図では、紙面の都合上、OSとソフトウェアモジュールの記載は省略しているが、図2及び図3と同様である。
OS0(141)とソフトウェアモジュール0(151)が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data a(OSDa,202)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data a(APDa,206)、OS間通信data a(OSMa,208)で、これらは、内蔵メモリ(160)上のOS code 1(OSC1,260)、OS code 2(OSC2,261)、OS個別data a(OSDa,262)、AP code 1(APC1,264)、AP code 2(APC2,265)、AP個別data a(APDa,266)、OS間通信data a(OSMa,268)に実態のコピーが移され、MMU0(171)により仮想メモリ空間(181)上のOS code 1(OSC1,230)、OS code 2(OSC2,231)、OS個別data a(OSDa,232)、AP code 1(APC1,234)、AP code 2(APC2,235)、AP個別data a(APDa,236)、OS間通信data a(OSMa,238)にアドレス変換されて、OS0(141)とソフトウェアモジュール0(151)からアクセスされる。
同様に、OSm(144)とソフトウェアモジュールm(154)が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data b(OSDb,203)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data b(APDb,207)、OS間通信data b(OSMb,209)で、これらは、内蔵メモリ(160)上のOS code 1(OSC1,260)、OS code 2(OSC2,261)、OS個別data b(OSDb,263)、AP code 1(APC1,264)、AP code 2(APC2,265)、AP個別data b(APDb,267)、OS間通信data b(OSMb,269)に実態のコピーが移され、MMU1(172)により仮想メモリ空間(182)上のOS code 1(OSC1,240)、OS code 2(OSC2,241)、OS個別data b(OSDb,243)、AP code 1(APC1,244)、AP code 2(APC2,245)、AP個別data b(APDb,247)、OS間通信data b(OSMb,249)にアドレス変換されて、OSm(144)とソフトウェアモジュールm(154)からアクセスされる。
内蔵メモリ管理テーブル(250)は、内蔵メモリ(160)上の空き領域、外部メモリ(130)上のメモリ領域の実態(OS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data a(OSDa,202)、OS個別data b(OSDb,203)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data a(APDa,206)、AP個別data b(APDb,207)、OS間通信data a(OSMa,208)、OS間通信data b(OSMb,209)等)のコピーが、内部メモリ(160)上のどこ(OS code 1(OSC1,260)、OS code 2(OSC2,261)、OS個別data a(OSDa,262)、OS個別data b(OSDb,263)、AP code 1(APC1,264)、AP code 2(APC2,265)、AP個別data a(APDa,266)、AP個別data b(APDb,267)、OS間通信data a(OSMa,268)、OS間通信data b(OSMb,269)等)に移されたか、を管理する。
ここで、通常内蔵メモリ(160)の容量は、外部メモリの容量に比べて小さく、外部メモリ(130)上にメモリ領域として割り当てられたものの実態のコピーを、全てを内蔵メモリ(160)に保持することは可能ではない。従って、ソフトウェアモジュールとOSのアクセスに応じて、内蔵メモリ(160)上に領域を確保し、そのアクセスの対象である外部メモリ(130)上にメモリ領域の実態のコピーを、当該領域に割り付ける。ここで、内蔵メモリ管理テーブル(250)により内蔵メモリ(160)に空きがないことが明らかな場合は、既に内蔵メモリ(160)に割り付けられているメモリ領域の実態のコピー群の中から一つを選択し、当該メモリ領域の実態のコピーを外部メモリ(130)の該当する領域に退避し、領域を確保する。
この様なハードウェア資源のソフトウェアに対する割り当てに対して、本実施例におけるアクセス制御ハードウェア(120)は、MMU0(171)およびMMU1(172)により変換されたアドレスとCPUとの組み合わせにより、アクセスの可否を判断する。従って、アクセス制御ハードウェア(120)がアクセスの可否を判断するルールは、以下の通り、それぞれドメイン分離ファームウェア(140)が設定する。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(APC2,205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(8)OS間通信data b(OSMb,209)に対するアクセス可否ルールエントリ(309)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(9)それ以外の外部メモリの領域に対するアクセス可否ルールエントリには、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(APC2,205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(8)OS間通信data b(OSMb,209)に対するアクセス可否ルールエントリ(309)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(9)それ以外の外部メモリの領域に対するアクセス可否ルールエントリには、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
更に、内蔵メモリ(160)を対象とするアクセス制御ハードウェア(121)がアクセスの可否を判断するルールは、以下の通り、それぞれドメイン分離ファームウェア(140)が設定する。
(1)OS code 1(OSC1,260)とOS code 2(OSC2,261)に対するアクセス可否ルールエントリ(310)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,262)に対するアクセス可否ルールエントリ(311)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,263)に対するアクセス可否ルールエントリ(312)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,264)とAP code 2(APC2,265)に対するアクセス可否ルールエントリ(313)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,266)に対するアクセス可否ルールエントリ(314)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,267)に対するアクセス可否ルールエントリ(315)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)OS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(8)OS間通信data b(OSMb,269)に対するアクセス可否ルールエントリ(317)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(1)OS code 1(OSC1,260)とOS code 2(OSC2,261)に対するアクセス可否ルールエントリ(310)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,262)に対するアクセス可否ルールエントリ(311)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,263)に対するアクセス可否ルールエントリ(312)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,264)とAP code 2(APC2,265)に対するアクセス可否ルールエントリ(313)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,266)に対するアクセス可否ルールエントリ(314)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,267)に対するアクセス可否ルールエントリ(315)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)OS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(8)OS間通信data b(OSMb,269)に対するアクセス可否ルールエントリ(317)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
なお、本実施例では、全ての内蔵メモリの領域を用いているため、図面上、存在していないが、もし、使用しない内蔵メモリの領域があるのであれば、それ以外の内蔵メモリの領域に対するアクセス可否ルールエントリには、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可と、設定する。
ソフトウェアモジュール0(151)からソフトウェアモジュールm(154)へOS間通信を実施する際は、ソフトウェアモジュール0(151)が内蔵メモリ(160)上のOS間通信Data a(OSMa,268)にデータの書き込みが完了した時点で、ドメイン連携ミドルウェア(150)に転送要求を出す。
転送要求を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いて、OS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)とOS間通信Data b(OSMb,269)に対するアクセス可否ルールエントリ(317)とに対しOS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、と設定する。その後、ドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)とOS間通信Data b(OSMb,269)に対するアクセス可否ルールエントリ(317)とに対し、ドメイン連携ミドルウェア(150)を実行しているCPUからの読み書きアクセス可と設定し、OS間通信Data a(OSMa,268)に書き込まれたデータをOS間通信Data b(OSMb,269)の指定された場所に書き出す。その後、再びドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)とOS間通信Data b(OSMb,269)に対するアクセス可否ルールエントリ(317)とに対し、ドメイン連携ミドルウェア(150)を実行しているCPUからの全てのアクセス不可と設定し、完了した後、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可、OS間通信data b(OSMb,269)に対するアクセス可否ルールエントリ(317)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可、と設定し、ソフトウェアモジュール0(151)に対し転送完了を出す。
ソフトウェアモジュールm(154)からソフトウェアモジュール0(151)へOS間通信を実施する際は、ソフトウェアモジュールm(154)が外部メモリ(130)上のOS間通信Data b(OSMa,269)にデータの書き込みが完了した時点で、ドメイン連携ミドルウェア(150)に転送要求を出す。
転送要求を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)とOS間通信Data b(OSMb,269)に対するアクセス可否ルールエントリ(317)とに対しOS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、と設定する。その後、ドメイン連携ミドルウェア(150)は、OS間通信Data b(OSMb,269)に書き込まれたデータをOS間通信Data a(OSMa,268)の指定された場所に書き出し、完了した後、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可、OS間通信data b(OSMb,269)に対するアクセス可否ルールエントリ(317)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可、と設定し、ソフトウェアモジュールm(154)に対し転送完了を出す。
以上の通り、本実施例では、実施例2と比較して内蔵メモリを用いてデータ処理を行うため高速に動作することが可能となる。
本発明は、マルチプロセッサシステムに適用して特に有効である。
Claims (7)
- 第1中央処理装置と、第2中央処理装置と、前記第1中央処理装置にて実行される第1オペレーティングシステムと、前記第2中央処理装置にて実行される第2オペレーティングシステムと、前記第1中央処理装置及び前記第2中央処理装置にアクセスされるメモリとを有する情報処理装置であって、
前記情報処理装置を、前記第1中央処理装置、前記第1オペレーティングシステム、及び、前記メモリの領域のうち一部の第1領域を第1ドメインとして割り当て、前記第2中央処理装置、前記第2オペレーティングシステム及び前記メモリの領域のうち一部の第2領域を第2ドメインとして割り当て、一方のドメインが他のドメインに割当てられた領域にアクセスしないように制御するファームウェアと、
前記第1ドメイン及び前記第2ドメイン間でデータの通信が必要な場合に、当該通信を制御するミドルウェアとを有することを特徴とする情報処理装置。 - 請求項1において、
前記情報処理装置は、前記ファームウェアからの設定に基づいて、一方のドメインが他方のドメインに割当てられた領域にアクセスする際に、そのアクセスを遮断するアクセス制御モジュールを更に具備することを特徴とする情報処理装置。 - 請求項2において、
前記ファームウェアは、前記第1領域の先頭アドレス、前記第1領域のサイズ、及び、前記第1領域の割り当てが前記第1ドメインであることを対にして前記アクセス制御モジュールに設定し、前記第2領域の先頭アドレス、前記第2領域のサイズ、及び、前記第2領域の割り当てが前記第2ドメインであることを対にして前記アクセス制御モジュールに設定することを特徴とする情報処理装置。 - 請求項1において、
前記第1オペレーティングシステムのコードと前記第2オペレーティングシステムのコードが共有できる場合において、前記メモリは、前記メモリの領域の一部の第3領域に、前記共有できるコードを保持し、前記ファームウェアは、前記第3領域に対し、前記第1ドメイン及び前記第2ドメインからリードアクセスを許可し、ライトアクセスを許可しないように制御することを特徴とする情報処理装置。 - 請求項1において、
前記メモリは、前記第1ドメイン及び前記第2ドメイン間でデータの通信を行う場合に、通信用データを格納する第4領域を含み、
前記ファームウェアは、前記第1及び第2ドメインから通信の要求がない場合には、前記第4領域を前記第1ドメイン及び前記第2ドメインからアクセスできないように制御し、
前記ミドルウェアは、前記第1ドメインが前記第2ドメインにデータの通信を行う旨の要求を受けた場合に、前記第1ドメインに前記第4領域へのアクセスを許可し、前記第2ドメインに前記第4領域へのアクセスを許可しないように前記ファームウェアを制御した状態で、前記第1ドメインに前記第4領域へのアクセスを許可することを特徴とする情報処理装置。 - 請求項1において、
前記メモリは、前記第1ドメインが前記第2ドメインにデータの通信を行う場合に、通信用のデータを書き込む第5領域と、前記第2ドメインが前記第1ドメインにデータの通信を行う場合に、通信用のデータを書き込む第6領域とを有し、
前記ファームウェアは、前記第5領域に対して前記第1ドメインがアクセス可能で、前記第2ドメインはアクセス不可能になるように制御し、前記第6領域に対して前記第2ドメインがアクセス可能で、前記第1ドメインがアクセス不可能となるように制御し、
前記ミドルウェアは、前記第1ドメインが前記第2ドメインにデータの通信を行う旨の要求を受けた場合に、前記第1ドメインが前記第5領域に通信用のデータを書き込んだ後、前記第5領域及び前記第6領域が前記第1及び前記第2ドメインからアクセス不可能となるように前記ファームウェアに指示し、その後、前記第5領域から前記第6領域へのデータを転送することを特徴とする情報処理装置。 - 請求項1において、
前記第1ドメインは、仮想メモリ空間から前記メモリの領域を含む物理メモリ空間へのアドレス変換を行う第1メモリマネージメントユニットを有し、
前記第2ドメインは、仮想メモリ空間から前記メモリの領域を含む物理メモリ空間へのアドレス変換を行う第2メモリマネージメントユニットを有し、
前記ファームウェアは、前記物理メモリ空間に対して、アクセス制御を行うことを特徴とする情報処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/676,600 US20110161644A1 (en) | 2009-02-26 | 2009-02-26 | Information processor |
PCT/JP2009/053546 WO2010097925A1 (ja) | 2009-02-26 | 2009-02-26 | 情報処理装置 |
JP2011501407A JPWO2010097925A1 (ja) | 2009-02-26 | 2009-02-26 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/053546 WO2010097925A1 (ja) | 2009-02-26 | 2009-02-26 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010097925A1 true WO2010097925A1 (ja) | 2010-09-02 |
Family
ID=42665152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2009/053546 WO2010097925A1 (ja) | 2009-02-26 | 2009-02-26 | 情報処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110161644A1 (ja) |
JP (1) | JPWO2010097925A1 (ja) |
WO (1) | WO2010097925A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012103930A (ja) * | 2010-11-11 | 2012-05-31 | Hitachi Ltd | 仮想計算機システム及びそのインストール方法 |
JP2016508647A (ja) * | 2013-05-28 | 2016-03-22 | ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. | マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム |
JP2017084133A (ja) * | 2015-10-28 | 2017-05-18 | 株式会社日立製作所 | 仮想計算機間の通信経路制御方法および計算機システム |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8631123B2 (en) | 2011-01-14 | 2014-01-14 | International Business Machines Corporation | Domain based isolation of network ports |
US8832389B2 (en) * | 2011-01-14 | 2014-09-09 | International Business Machines Corporation | Domain based access control of physical memory space |
US8595821B2 (en) | 2011-01-14 | 2013-11-26 | International Business Machines Corporation | Domains based security for clusters |
US10289467B2 (en) * | 2013-03-28 | 2019-05-14 | Hewlett Packard Enterprise Development Lp | Error coordination message for a blade device having a logical processor in another system firmware domain |
TW201537458A (zh) * | 2014-03-31 | 2015-10-01 | Quanta Comp Inc | 操作多重作業系統之方法及其電子裝置 |
US11914713B2 (en) | 2019-02-28 | 2024-02-27 | Hewlett-Packard Development Company, L.P. | Access to firmware settings with asymmetric cryptography |
US20240106824A1 (en) * | 2022-09-23 | 2024-03-28 | Qualcomm Incorporated | Hardware identity impersonation for target access control |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001331333A (ja) * | 2000-05-18 | 2001-11-30 | Hitachi Ltd | 計算機システム及び計算機システムの制御方法 |
JP2002157133A (ja) * | 2000-11-21 | 2002-05-31 | Hitachi Ltd | 計算機システム |
JP2004258698A (ja) * | 2003-02-24 | 2004-09-16 | Hitachi Ltd | マルチos計算機システムの制御方法 |
JP2005513644A (ja) * | 2001-12-20 | 2005-05-12 | ノキア コーポレイション | オペレーティングシステム機能を実行する方法及びシステム並びに電子装置 |
JP2008186173A (ja) * | 2007-01-29 | 2008-08-14 | Toyota Motor Corp | 障害監視システム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418703B2 (en) * | 2002-03-20 | 2008-08-26 | Nec Corporation | Parallel processing system by OS for single processor |
JP2004334410A (ja) * | 2003-05-06 | 2004-11-25 | Hitachi Ltd | 情報処理装置及びプロセッサ |
JP4756603B2 (ja) * | 2006-10-10 | 2011-08-24 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
-
2009
- 2009-02-26 WO PCT/JP2009/053546 patent/WO2010097925A1/ja active Application Filing
- 2009-02-26 US US12/676,600 patent/US20110161644A1/en not_active Abandoned
- 2009-02-26 JP JP2011501407A patent/JPWO2010097925A1/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001331333A (ja) * | 2000-05-18 | 2001-11-30 | Hitachi Ltd | 計算機システム及び計算機システムの制御方法 |
JP2002157133A (ja) * | 2000-11-21 | 2002-05-31 | Hitachi Ltd | 計算機システム |
JP2005513644A (ja) * | 2001-12-20 | 2005-05-12 | ノキア コーポレイション | オペレーティングシステム機能を実行する方法及びシステム並びに電子装置 |
JP2004258698A (ja) * | 2003-02-24 | 2004-09-16 | Hitachi Ltd | マルチos計算機システムの制御方法 |
JP2008186173A (ja) * | 2007-01-29 | 2008-08-14 | Toyota Motor Corp | 障害監視システム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012103930A (ja) * | 2010-11-11 | 2012-05-31 | Hitachi Ltd | 仮想計算機システム及びそのインストール方法 |
JP2016508647A (ja) * | 2013-05-28 | 2016-03-22 | ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. | マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム |
JP2017084133A (ja) * | 2015-10-28 | 2017-05-18 | 株式会社日立製作所 | 仮想計算機間の通信経路制御方法および計算機システム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2010097925A1 (ja) | 2012-08-30 |
US20110161644A1 (en) | 2011-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2010097925A1 (ja) | 情報処理装置 | |
TWI470552B (zh) | Data processor | |
US6449699B2 (en) | Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems | |
RU2602793C2 (ru) | Способ модификации разрешений на доступ к памяти в защищенной процессорной среде | |
US8176220B2 (en) | Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors | |
JP5870206B2 (ja) | 効率的なメモリ及びリソース管理 | |
US7702826B2 (en) | Method and apparatus by utilizing platform support for direct memory access remapping by remote DMA (“RDMA”)-capable devices | |
US8112611B2 (en) | Allocating resources to partitions in a partitionable computer | |
US8893267B1 (en) | System and method for partitioning resources in a system-on-chip (SoC) | |
US20110167189A1 (en) | Storage apparatus and its data transfer method | |
US10296356B2 (en) | Implementation of reset functions in an SoC virtualized device | |
JP2011170477A (ja) | ハイパーバイザ及びサーバ装置 | |
US20220114098A1 (en) | System, apparatus and methods for performing shared memory operations | |
US10430221B2 (en) | Post-copy virtual machine migration with assigned devices | |
JP5338435B2 (ja) | 情報処理プログラム、情報処理装置および情報処理方法 | |
JP2008021252A (ja) | 計算機システム及びアドレス割当方法 | |
US8069272B2 (en) | Highly reliable disk controller | |
US10817456B2 (en) | Separation of control and data plane functions in SoC virtualized I/O device | |
US11188477B2 (en) | Page protection layer | |
KR101695845B1 (ko) | 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 | |
TWI867129B (zh) | 在虛擬機器間無需複製而移動資料的處理器、資料處理系統及非暫態機器可讀取媒體 | |
CN117120976B (zh) | 解聚数据中心中的自适应存储器一致性 | |
US10853303B2 (en) | Separation of control and data plane functions in SoC virtualized I/O device | |
JPH09319653A (ja) | 情報処理装置、情報処理システム及びその制御方法 | |
US20250021228A1 (en) | Locking hardware for a shared memory |
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: 09840778 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2011501407 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 09840778 Country of ref document: EP Kind code of ref document: A1 |