Multiprocessor system having distributed shared resources and dynamic global data replication
First Claim
1. A multiprocessor system which performs the method of dynamically allocating and replicating global data, said system having distributed shared resources and dynamic global data replication comprising a system bus, a plurality of central processing units (CPU) operating under control of a UNIX type operating system, each CPU comprising a processor, a related local memory connected to said processor, a related memory management unit (MMU) connected to said processor for converting virtual addresses received from said processor into addresses having a bit field which identifies said addresses as related to global data used in more CPUs of said plurality and which read replication in the local memory of each CPU in said plurality, or as related to local data used by one only of said CPUs and an interface unit connected to said system bus and enabling information exchange among said CPUs through said system bus, said method comprising the steps of:
- generating a memory table (GSD) in the local memory of each of said CPUs under control of said operating system for referencing by codes related to virtual page addresses of shared segments, said memory table storing information which, for each virtual page address, defines if the data in said virtual page are global data or local data and in which of said CPUs said global data are used and validity stored in the related local memory;
at least one CPU of said plurality of CPUs performing a page fault procedure in response to an indication of missing page generated by the related MMU which references said GSD table in the local memory related to said one CPU upon detecting that said missing page is used in another CPU of said plurality of CPUs and stored in the local memory of said another CPU as local data page, for generating signals for requesting all other CPUs to allocate a free physical memory page of the related local memory for storing a global data page and for causing said page missing in said one CPU and stored in the local memory of said another CPU to be replicated in the local memories of all other of said CPUs; and
,changing the information stored in said GSD table by said one CPU to indicate that said page requested to be replicated is global upon completion of said page being replicated in the local memories of all other of said CPUs.
5 Assignments
0 Petitions
Accused Products
Abstract
A multiprocessor system has distributed shared resources and dynamic global data replication in which a plurality of processors communicate each with the other through a system bus. Each CPU is provided with a local memory for storing data used locally and global data shareable by a plurality of processes operative in different CPUs and therefore replicated in the local memory of each CPU. Global data replication is performed at page level only when a global data page is effectively needed by a plurality of processes operative in different CPUs so that memory space required for replication is minimized as well as traffic on the system bus for global data replication and global data writes required for ensuring global data consistency.
-
Citations
7 Claims
-
1. A multiprocessor system which performs the method of dynamically allocating and replicating global data, said system having distributed shared resources and dynamic global data replication comprising a system bus, a plurality of central processing units (CPU) operating under control of a UNIX type operating system, each CPU comprising a processor, a related local memory connected to said processor, a related memory management unit (MMU) connected to said processor for converting virtual addresses received from said processor into addresses having a bit field which identifies said addresses as related to global data used in more CPUs of said plurality and which read replication in the local memory of each CPU in said plurality, or as related to local data used by one only of said CPUs and an interface unit connected to said system bus and enabling information exchange among said CPUs through said system bus, said method comprising the steps of:
-
generating a memory table (GSD) in the local memory of each of said CPUs under control of said operating system for referencing by codes related to virtual page addresses of shared segments, said memory table storing information which, for each virtual page address, defines if the data in said virtual page are global data or local data and in which of said CPUs said global data are used and validity stored in the related local memory; at least one CPU of said plurality of CPUs performing a page fault procedure in response to an indication of missing page generated by the related MMU which references said GSD table in the local memory related to said one CPU upon detecting that said missing page is used in another CPU of said plurality of CPUs and stored in the local memory of said another CPU as local data page, for generating signals for requesting all other CPUs to allocate a free physical memory page of the related local memory for storing a global data page and for causing said page missing in said one CPU and stored in the local memory of said another CPU to be replicated in the local memories of all other of said CPUs; and
,changing the information stored in said GSD table by said one CPU to indicate that said page requested to be replicated is global upon completion of said page being replicated in the local memories of all other of said CPUs. - View Dependent Claims (2, 3, 4)
-
-
5. In a multiprocessor system having distributed shared resources and comprising a system bus, a plurality of central processing units (CPU), each CPU comprising a processor and a logical memory, a memory management unit (MMU) and an interface unit connected to said system bus for enabling information exchange among said CPUs through said system bus, a method for dynamically allocating and replicating global data comprising the steps of:
-
(a) generating by any one of said plurality of CPUs for each shared data segment, a table GSD which for each page of said shared segment contains information indicating if the page is global or used by processes active in more than one of said CPUs, or local or used by one or more processes active in only one of said CPUs, information further indicating in which of said CPUs said page is used and in which of CPU local memories said page is stored; (b) detecting by one CPU by means of said GSD table, if a shared data page needed by a process active in one CPU of said plurality of CPUs is being used in another process created in another CPU of said plurality of CPUs, and stored in the local memory of said another CPU; (c) requesting by said one CPU to all said CPUs other than said another CPU when the result in step (b) is affirmative, to allocate a physical memory page of the related local memory for storing a global data page; (d) replicating by said another CPU, said page needed by said process active in said one CPU, and stored in the local memory of said another CPU, in the local memory of all said CPUs; and
,(e) changing by a CPU of said plurality of CPUs, the information stored in said GSD table to indicate that said page replicated in step (d) is global. - View Dependent Claims (6, 7)
-
Specification