GB2233480A - Multiprocessor data processing system - Google Patents

Multiprocessor data processing system Download PDF

Info

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
Application number
GB9006508A
Other versions
GB9006508D0 (en
GB2233480B (en
Inventor
Michael William Berry Curran
Richard Norcott Taylor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Services Ltd
Original Assignee
Fujitsu Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Services Ltd filed Critical Fujitsu Services Ltd
Publication of GB9006508D0 publication Critical patent/GB9006508D0/en
Publication of GB2233480A publication Critical patent/GB2233480A/en
Application granted granted Critical
Publication of GB2233480B publication Critical patent/GB2233480B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/17Interprocessor 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.
GB9006508A 1989-06-22 1990-03-23 Multiprocessor data processing system Expired - Fee Related GB2233480B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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