Shared memory apparatus and method for multiprocessor systems
First Claim
1. An adapter for coupling a processor system to a shared memory unit over a data link, the processor system having a data bus for access to a local memory and a standard expansion bus coupled to the data bus, the shared memory unit having at least one bank of shared memory, the adapter comprising:
- a expansion bus interface coupling the adapter to the expansion bus of the processor system;
an input/output port coupling the adapter to the shared memory unit via the data link;
means coupled to the expansion bus interface for monitoring processor memory accesses on the data bus;
means coupled to the data bus monitoring means for detecting when a monitored processor memory access is a processor memory access operation to a memory address value within a range of addresses corresponding to the shared memory;
means coupled to the detecting means for translating the monitored processor memory access operation into a shared memory access request;
means for outputting the shared memory access request to the input/output port and, in turn, to the shared memory unit; and
means coupled to the expansion bus interface for placing a memory access completion acknowledgement indication on the expansion bus;
whereby it is transparent to the processor system whether the memory access operation is addressed to the local memory or to the shared memory.
8 Assignments
0 Petitions
Accused Products
Abstract
A memory alias adapter, coupled to a processor'"'"'s memory bus, monitors processor memory accesses. Whenever a memory access corresponds to shared memory, rather than memory local to the processor, the adapter constructs a memory request message, and transmits the message over a network link to a shared memory unit. The shared memory unit performs the shared memory access and issues a response message over the network link. The memory alias adapter accepts the response message, and completes processor'"'"'s memory access on the memory bus. As a result, it is transparent to the processor whether its memory access is to the local memory or to the shared memory,
-
Citations
25 Claims
-
1. An adapter for coupling a processor system to a shared memory unit over a data link, the processor system having a data bus for access to a local memory and a standard expansion bus coupled to the data bus, the shared memory unit having at least one bank of shared memory, the adapter comprising:
-
a expansion bus interface coupling the adapter to the expansion bus of the processor system;
an input/output port coupling the adapter to the shared memory unit via the data link;
means coupled to the expansion bus interface for monitoring processor memory accesses on the data bus;
means coupled to the data bus monitoring means for detecting when a monitored processor memory access is a processor memory access operation to a memory address value within a range of addresses corresponding to the shared memory;
means coupled to the detecting means for translating the monitored processor memory access operation into a shared memory access request;
means for outputting the shared memory access request to the input/output port and, in turn, to the shared memory unit; and
means coupled to the expansion bus interface for placing a memory access completion acknowledgement indication on the expansion bus;
whereby it is transparent to the processor system whether the memory access operation is addressed to the local memory or to the shared memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23)
-
-
16. A shared memory unit for providing shared memory to a plurality of processor systems, the shared memory unit comprising:
-
a shared memory comprising a plurality of memory banks;
a plurality of input/output ports, each input/output port being connectable to a processor system by a dedicated data link;
means coupled to the input/output ports for receiving a shared memory access request from a requesting processor;
means coupled to the receiving means for determining the memory bank corresponding to the memory access request;
connecting means coupled to the receiving means, the determining means, and the memory banks, for providing a data path between the input/output port and the memory bank associated with the memory access request;
a memory controller coupled to the connecting means and the receiving means, the memory controller performing memory accesses to the shared memory bank through the connecting means in accordance with the memory access request; and
means coupled to the memory controller and the input/output ports for generating a shared memory access response for transmission back to the requesting processor system.
-
-
24. A memory bus transfer controller for controlling accesses to a local portion of distributed shared memory, the memory bus transfer controller comprising:
-
a local processor memory bus interface coupling the memory bus transfer controller to a local processor and to a memory private to the local processor;
a local shared memory bus interface coupling the memory bus transfer controller to the local portion of distributed shared memory;
a shared memory interconnect bus coupling the memory bus transfer controller to at least one remote memory bus transfer controller associated with at least one remote processor;
first monitoring means coupled to the local processor memory bus interface for monitoring local processor memory bus accesses;
first determining means coupled to the first monitoring means for determining whether a memory address associated with the processor memory bus access corresponds to one of the memory private to the local processor, the local portion of distributed shared memory, and a remote portion of distributed shared memory;
second monitoring means coupled to the shared memory interconnect bus for monitoring remote processor memory access requests;
second determining means coupled to the second monitoring means for determining when a remote processor memory access request corresponds to the local portion of distributed shared memory; and
a memory controller coupled to the first determining means, the second determining means, the local processor memory bus, and the shared memory interconnect bus, the memory controller performing a local shared memory access when the first determining means indicates that a local processor memory bus access corresponds to the local portion of distributed shared memory, sending a shared memory access request to the shared memory interconnect bus when the first determining means indicates that a local processor memory bus access corresponds to a remote portion of distributed shared memory, and performing a local shared memory bus access when the second determining means indicates that a remote memory access request corresponds to the local portion of distributed shared memory;
whereby it is transparent to the local processor whether each of its memory access operations is addressed to the local memory, the local portion of distributed shared memory, or a remote portion of distributed shared memory.
-
-
25. A method for performing processor memory accesses to a shared memory unit using an adapter coupling a processor system to the shared memory unit via a data link, the processor system having a standard expansion bus, the adapter having a standard expansion bus interface coupling the adapter to the standard expansion bus of the processor system and an input/output port coupling the adapter to the data link and, in turn, to the shared memory unit, the method comprising the steps of;
-
monitoring processor memory accesses on the standard expansion bus;
detecting when a monitored processor memory access is a processor memory operation to a memory address value within a range of addresses corresponding to the shared memory;
translating the processor memory operation into a shared memory access request;
outputting the shared memory access request to the input/output port and, in turn, to the shared memory unit via the data link; and
placing a shared memory access acknowledgement indication on the standard expansion bus;
whereby it is transparent to the processor whether the memory access operation is addressed to the local memory or to the shared memory.
-
Specification