GB2233480A - Multiprocessor data processing system - Google Patents
Multiprocessor data processing system Download PDFInfo
- Publication number
- GB2233480A GB2233480A GB9006508A GB9006508A GB2233480A GB 2233480 A GB2233480 A GB 2233480A GB 9006508 A GB9006508 A GB 9006508A GB 9006508 A GB9006508 A GB 9006508A GB 2233480 A GB2233480 A GB 2233480A
- Authority
- GB
- United Kingdom
- Prior art keywords
- memory
- bus
- processor
- module
- local
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0692—Multiconfiguration, e.g. local and global addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
A multi-processor data processing system is described, in which each processor has a local memory. The local memories together from the main memory of the system, and any processor can access any memory, whether it is local to that processor, or remote. Each processor has an interface circuit which determines whether a memory access request relates to the local memory or to a remote memory, and routes the request to the appropriate memory. remote requests being routed over a bus. Whenever as write access is made to the local memory, a dummy write request is routed over the bus to all the other processors. Each processor monitors all write requests on the bus, and if a copy of the location specified in the request is held in a local cache memory, that copy is invalidated, so as to ensure cache consistency. <IMAGE>
Description
Multiprocessor data processing system
Background to the invention
This invention relates to multiprocessor data processing systems.
In a conventional multiprocessor system, a number of processors share a common memory, which they access over a shared memory bus. Whenever a processor requires to access data in the memory, it first has to win control of the bus, and then places a memory access request on the bus. In the case of a write request, the processor also sends the data to be written. In the case of a read request, the memory responds by returning the required data to the processor.
A problem with such an arrangement is that the memory bus presents a bottleneck which severely restricts the operation of the system. This problem becomes more acute as the number of processor in the system increases.
"Multi-Microprocessors: an overview and working example", by S.M. Fuller et al, Proceedings of the IEEE,
February 1978, page 216, describes a possible solution to this problem. A multiprocessor system is described, comprising a number of computer modules (Cm), each of which consists of a processor, local memory, input/output devices, and a local switch (Slocal). A processor can directly reference any location in any of the memories/ The local switch decides whether the location is in the local memory of the module and, if so, passes the reference directly to the local memory.
If, on the other hand, the referenced location is in some other module, the local switch passes the reference over a bus to a mapping controller (Kmap). The mapping controller then initiates a memory request to the module which contains the referenced location.
It can be seen that this reduces the amount of traffic over the bus, since references to data held in the local memory can be dealt with without any transfers over the bus. However, a problem with this is that it requires a special mapping controller external to the individual processing modules. As a result, in moving from a single-processor system to a multi-processor system, not only is it necessary to add extra processing modules, but it is also necessary to introduce a mapping controller. Moreover, there has to be a special memory management activity to configure the mapping controller, in addition to that required to configure the local switches in the processing modules.
The object of the present invention is to overcome these problems.
Summary of the invention
According to the invention there is provided a data processing system comprising, a plurality of processing modules interconnected by a bus, each module comprising a processor, a memory, and an interface unit, wherein whenever a processor requests a memory access, the interface unit in the same module determines whether the requested memory location is in the memory in the same module and, if so, directly access that location, whereas, if the requested memory location is in the memory of a remote module, the interface unit sends a memory access request direct to that remote module.
Brief description of the drawings
The sole figure of the drawing is a block diagram of a multi-processor data processing system embodying the present invention.
Description of an embodiment of the invention
One data processing system in accordance with the invention will now be described by way of example with reference to the accompanying drawing.
Referring to the drawing, the system comprises a plurality of data processing modules 10, interconnected by a bus 11. Only two modules are shown in this example, but it will be appreciated that the system can be expanded by connecting further modules to the bus. Accesses to the bus are controlled by a bus arbitration circuit 12.
Each of the processing modules 10 comprises a data processor 13, a memory 14, an interface circuit 15 and a cache memory 16.
The memories 14 in the modules 10 together form the main memory of the system. Any processor can access any location in any of the memories 14, whether it is local to that processor (i.e. in the same modules) or remote (i.e. in a different module).
The cache memories 16 are limited capacity very high performance data storage units, associated with the individual processors. Each cache is dynamically mapped on to the individual locations of the main memory, so as to provide rapid access without the delays involved in accessing the slower main memory. Cache memories are well known as such, and so it is not necessary to describe the structure of the caches 16 in any further detail.
When any of the processors 13 requires to access a memory location, it issues a read or write access request to the interface circuit 15. The interface circuit determines whether the requested memory location is in the local memory 14 in the same module, or is in a remote module. This is achieved by consulting page tables which indicate for each page whether that page is local or remote. These tables may be the same as those conventionally provided for address translation, and hence do not impose any additional initialisation overhead on the system.
If the requested location is in the local memory, the interface unit accesses this location directly, and reads or writes the data as required.
If the requested location is remote, the interface circuit sends a request signal to the bus arbitration circuit 12, requesting permission to use the bus. The arbitration circuit ensures that only one of the interface circuits has access to the bus at any given time. When the interface circuit has been granted permission to use the bus, it sends the memory access request over the bus to the remote module that contains the requested memory location. This request is received by the interface circuit in that remote module, which then accesses the memory 14 in that module so as to read or write the data as required. In the case of a read request, the data is then returned over the bus to the requesting module.
In the case of a local write request, as well as writing the data to the local memory, the interface circuit also sends a dummy write request on the bus.
The purpose of this will be explained later.
The operation of the cache memory will now be described.
Whenever a processor 13 issues a memory access request, the cache checks whether a copy of the requested memory location is already present in the cache. If so, the data can be accessed very rapidly.
In the case of a read access, no main store access is necessary. However, in the case of a write access, the data is also written back to the main memory, so as to ensure that the main memory is kept up to date.
If, on the other hand, the required data is not present in the cache, it is accessed from the main memory as described above, and copied into the cache, so that it is available for future access.
It is possible that several copies of the same memory location may exist in the caches of different modules 10, and these copies must be kept consistent.
In the present system, this is achieved as follows.
As described above, whenever any processor writes to any memory 14, a write request is sent over the bus 11. In the case of a local write, this involves a dummy write request over the bus. Each processing module monitors the bus, and whenever it detects a write request from another module, it checks whether a copy of the data in question is held in its own cache 16. If so, the cache copy is invalidated. This ensures that different versions of the same data cannot exist in different caches.
Conclusion
In summary, it can be seen that a local read access request does not involve the use of the bus 11, since the data can be read directly from the local memory 14. This significantly reduces the amount of traffic on the bus, and hence reduces the bottleneck problem.
The system does not require any external unit for routing remote access requests between different processing modules, since this is performed by the interface circuits 15 in the modules.
Claims (4)
1. A data processing system comprising, a plurality of processing modules interconnected by a bus, each module comprising a processor, a memory, and an interface unit, wherein whenever a processor requests a memory access, the interface unit in the same module determines whether the requested memory location is in the memory in the same moduls and, if so, directly access that location, whereas, if the requested memory location is in the memory of a remote module, the interface unit sends a memory access request direct to that remote module.
2. A system according to Claim 1 wherein each module also includes a cache for holding copies of data locations in the memories.
3. A system according to Claim 2 wherein whenever an interface unit performs a write access to the memory in the same module, it also sends a dummy write access request over the bus to all the other modules, and wherein each module is arranged to monitor all write access requests on the bus from other modules, including dummy write access requests, to check whether a copy of the location specified by that request is present in the cache memory of that module and, if so, to invalidate that copy.
4. A data processing system substantially as hereinbefore described with reference to the accompanying drawing.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB898914352A GB8914352D0 (en) | 1989-06-22 | 1989-06-22 | Multiprocessor data processing system |
Publications (3)
Publication Number | Publication Date |
---|---|
GB9006508D0 GB9006508D0 (en) | 1990-05-23 |
GB2233480A true GB2233480A (en) | 1991-01-09 |
GB2233480B GB2233480B (en) | 1993-03-17 |
Family
ID=10658879
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB898914352A Pending GB8914352D0 (en) | 1989-06-22 | 1989-06-22 | Multiprocessor data processing system |
GB9006508A Expired - Fee Related GB2233480B (en) | 1989-06-22 | 1990-03-23 | Multiprocessor data processing system |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB898914352A Pending GB8914352D0 (en) | 1989-06-22 | 1989-06-22 | Multiprocessor data processing system |
Country Status (1)
Country | Link |
---|---|
GB (2) | GB8914352D0 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0526930A1 (en) * | 1991-07-22 | 1993-02-10 | International Business Machines Corporation | A processor buffered interface for multiprocessor systems |
EP0580961A1 (en) * | 1992-07-17 | 1994-02-02 | International Business Machines Corporation | An enhanced processor buffered interface for multiprocessor systems |
US6408163B1 (en) | 1997-12-31 | 2002-06-18 | Nortel Networks Limited | Method and apparatus for replicating operations on data |
FR2863072A1 (en) * | 2003-11-27 | 2005-06-03 | Hitachi Ltd | DEVICE AND METHOD FOR EXECUTING INFORMATION PROCESSING USING A PLURALITY OF PROCESSORS |
WO2005026964A3 (en) * | 2003-09-04 | 2006-08-31 | Koninkl Philips Electronics Nv | Data processing system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0320607A2 (en) * | 1987-11-17 | 1989-06-21 | BULL HN INFORMATION SYSTEMS ITALIA S.p.A. | Multiprocessor system featuring global data duplication |
-
1989
- 1989-06-22 GB GB898914352A patent/GB8914352D0/en active Pending
-
1990
- 1990-03-23 GB GB9006508A patent/GB2233480B/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0320607A2 (en) * | 1987-11-17 | 1989-06-21 | BULL HN INFORMATION SYSTEMS ITALIA S.p.A. | Multiprocessor system featuring global data duplication |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0526930A1 (en) * | 1991-07-22 | 1993-02-10 | International Business Machines Corporation | A processor buffered interface for multiprocessor systems |
US5410654A (en) * | 1991-07-22 | 1995-04-25 | International Business Machines Corporation | Interface with address decoder for selectively generating first and second address and control signals respectively in response to received address and control signals |
EP0580961A1 (en) * | 1992-07-17 | 1994-02-02 | International Business Machines Corporation | An enhanced processor buffered interface for multiprocessor systems |
US5485594A (en) * | 1992-07-17 | 1996-01-16 | International Business Machines Corporation | Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system |
US5634034A (en) * | 1992-07-17 | 1997-05-27 | International Business Machines Corporation | Enhanced processor buffered interface for multiprocess systems |
US6408163B1 (en) | 1997-12-31 | 2002-06-18 | Nortel Networks Limited | Method and apparatus for replicating operations on data |
WO2005026964A3 (en) * | 2003-09-04 | 2006-08-31 | Koninkl Philips Electronics Nv | Data processing system |
US7870347B2 (en) | 2003-09-04 | 2011-01-11 | Koninklijke Philips Electronics N.V. | Data processing system |
FR2863072A1 (en) * | 2003-11-27 | 2005-06-03 | Hitachi Ltd | DEVICE AND METHOD FOR EXECUTING INFORMATION PROCESSING USING A PLURALITY OF PROCESSORS |
US7111119B2 (en) | 2003-11-27 | 2006-09-19 | Hitachi, Ltd. | Device and method for performing information processing using plurality of processors |
Also Published As
Publication number | Publication date |
---|---|
GB8914352D0 (en) | 1989-08-09 |
GB9006508D0 (en) | 1990-05-23 |
GB2233480B (en) | 1993-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5897664A (en) | Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies | |
Censier et al. | A new solution to coherence problems in multicache systems | |
US6826653B2 (en) | Block data mover adapted to contain faults in a partitioned multiprocessor system | |
US5623632A (en) | System and method for improving multilevel cache performance in a multiprocessing system | |
US5878268A (en) | Multiprocessing system configured to store coherency state within multiple subnodes of a processing node | |
US6622214B1 (en) | System and method for maintaining memory coherency in a computer system having multiple system buses | |
US5829052A (en) | Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system | |
US6651115B2 (en) | DMA controller and coherency-tracking unit for efficient data transfers between coherent and non-coherent memory spaces | |
US6510496B1 (en) | Shared memory multiprocessor system and method with address translation between partitions and resetting of nodes included in other partitions | |
US5398325A (en) | Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems | |
US6910108B2 (en) | Hardware support for partitioning a multiprocessor system to allow distinct operating systems | |
US6973544B2 (en) | Method and apparatus of using global snooping to provide cache coherence to distributed computer nodes in a single coherent system | |
EP0497600B1 (en) | Memory access method and apparatus | |
US6654858B1 (en) | Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol | |
KR100515229B1 (en) | Method and system of managing virtualized physical memory in a multi-processor system | |
US6546465B1 (en) | Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol | |
US5765195A (en) | Method for distributing interprocessor interrupt requests via cache memory coherency mechanisms | |
JP3295436B2 (en) | Microprocessor cache consistency | |
KR100322223B1 (en) | Memory controller with oueue and snoop tables | |
GB2386441A (en) | Bus interface selection by page table attributes | |
WO2001029674A1 (en) | Multi-processor system and method of accessing data therein | |
JPH10187631A (en) | Extended symmetrical multiprocessor architecture | |
US5727179A (en) | Memory access method using intermediate addresses | |
GB2233480A (en) | Multiprocessor data processing system | |
US6928517B1 (en) | Method for avoiding delays during snoop requests |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PCNP | Patent ceased through non-payment of renewal fee |
Effective date: 20040323 |