US20040098561A1 - Multi-processor system and method of accessing data therein - Google Patents

Multi-processor system and method of accessing data therein Download PDF

Info

Publication number
US20040098561A1
US20040098561A1 US10/696,146 US69614603A US2004098561A1 US 20040098561 A1 US20040098561 A1 US 20040098561A1 US 69614603 A US69614603 A US 69614603A US 2004098561 A1 US2004098561 A1 US 2004098561A1
Authority
US
United States
Prior art keywords
memory
processor
directory
data
operable
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.)
Abandoned
Application number
US10/696,146
Inventor
Michael Galles
Jeffrey Kuskin
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.)
Morgan Stanley and Co LLC
Hewlett Packard Enterprise Development LP
Original Assignee
Silicon Graphics Inc
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
Priority to US10/696,146 priority Critical patent/US20040098561A1/en
Application filed by Silicon Graphics Inc filed Critical Silicon Graphics Inc
Publication of US20040098561A1 publication Critical patent/US20040098561A1/en
Assigned to WELLS FARGO FOOTHILL CAPITAL, INC. reassignment WELLS FARGO FOOTHILL CAPITAL, INC. SECURITY AGREEMENT Assignors: SILICON GRAPHICS, INC. AND SILICON GRAPHICS FEDERAL, INC. (EACH A DELAWARE CORPORATION)
Assigned to GENERAL ELECTRIC CAPITAL CORPORATION reassignment GENERAL ELECTRIC CAPITAL CORPORATION SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SILICON GRAPHICS, INC.
Assigned to MORGAN STANLEY & CO., INCORPORATED reassignment MORGAN STANLEY & CO., INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GENERAL ELECTRIC CAPITAL CORPORATION
Assigned to SILICON GRAPHICS INTERNATIONAL, CORP. reassignment SILICON GRAPHICS INTERNATIONAL, CORP. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SGI INTERNATIONAL, INC., SILICON GRAPHICS, INC. ET AL.
Assigned to SILICON GRAPHICS INTERNATIONAL CORP. reassignment SILICON GRAPHICS INTERNATIONAL CORP. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: SGI INTERNATIONAL, INC.
Assigned to SILICON GRAPHICS INTERNATIONAL, INC. reassignment SILICON GRAPHICS INTERNATIONAL, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SILICON GRAPHICS, INC.
Assigned to SGI INTERNATIONAL, INC. reassignment SGI INTERNATIONAL, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: SILICON GRAPHICS INTERNATIONAL, INC.
Assigned to SILICON GRAPHICS, INC. reassignment SILICON GRAPHICS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GALLES, MICHAEL B., KUSKIN, JEFFREY S.
Assigned to MORGAN STANLEY SENIOR FUNDING, INC. reassignment MORGAN STANLEY SENIOR FUNDING, INC. SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SILICON GRAPHICS INTERNATIONAL CORP.
Assigned to SILICON GRAPHICS INTERNATIONAL CORP. reassignment SILICON GRAPHICS INTERNATIONAL CORP. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: MORGAN STANLEY SENIOR FUNDING, INC., AS AGENT
Assigned to HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP reassignment HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SILICON GRAPHICS INTERNATIONAL CORP.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • 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/0817Cache consistency protocols using directory methods
    • G06F12/0824Distributed directories, e.g. linked lists of caches
    • 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/0817Cache consistency protocols using directory methods
    • G06F12/082Associative directories
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration

Definitions

  • the present invention is related in general to computing system architectures and more particularly to a multi-processor system and method of accessing data therein.
  • Controlling access to memory in a multi-processor system is a difficult process, especially when many processors share data in memory.
  • each processor maintains a small cache of most frequently used data for quick access so that time consuming requests for data to the common system memory may be avoided.
  • the cache for each processor must be updated with changes made to its associated data that are reflected in the common system memory.
  • One technique for updating processor caches is to couple each processor to what's known as a snoopy bus. A request for access to data by a requesting processor is broadcast to other processors over the snoopy bus. Each processor “snoops” into their cache to see if it has the most recent copy of the requested data.
  • a processor does have a most recent copy of the requested data, then that processor provides the data to the requesting processor. If no processor has a most recent copy of the requested data, a memory access is required to fulfill the requesting processor's request. If a processor updates a memory location, this update is broadcasted over the snoopy bus to the other processors in the system. Each processor checks its cache to see if it has the data corresponding to the updated memory location. If so, the processor may either remove that data and corresponding memory location from its cache or update its cache with the new information. This snoopy bus technique is effective for a small number of processors within a computer system but is ineffective for computer systems having hundreds of processors.
  • Another technique is to provide a directory based memory configuration.
  • a directory is used to maintain a directory entry corresponding to every entry in memory.
  • the directory entry specifies whether the associated data in memory is valid or where the most recent copy of the data may be accessed.
  • the directory based memory configuration avoids coupling all the processors in the computer system together and having processors be bothered handling broadcast requests found in snoopy bus designs. Communication only needs to occur with the processor having the most recent copy of the data.
  • the size of the directory provides the constraint for this configuration, as the directory would become too large to support the number of processors and memories in a large computer system. Therefore, it is desirable to provide a memory access control mechanism for computer systems with a large number of processors.
  • a multi-processor system that includes a plurality of processors, wherein each processor includes an integrated memory, an integrated memory controller, and an integrated memory directory.
  • the integrated memory provides, receives, and stores data.
  • the integrated memory controller controls access to and from the integrated memory.
  • the integrated memory directory maintains a plurality of memory references to data within the integrated memory.
  • the multi-processor system also includes an external switch coupled to each of the plurality of processors.
  • the external switch passes data to and from any of the plurality of processors.
  • the external switch includes an external directory.
  • the external directory provides a memory reference to remote data for each of the plurality of processors that is not provided within its own integrated memory directory.
  • the present invention provides various technical advantages over conventional multi-processor systems. For example, one technical advantage is to integrate memory, memory control, and memory directory into a processor. Another technical advantage is the ability to extend the integrated memory directory capability with external support in order to implement large cache coherent multi-processor systems. Yet another technical advantage is to remove large system directory policy decisions from the individual processor in the system. Still another technical advantage is to provide a directory protocol that can be used with commodity processors having integrated memories and directories. Other technical advantages may be readily ascertainable by those skilled in the art from the following figures, description, and claims.
  • FIG. 1 illustrates a block diagram of a multi-processor system
  • FIG. 2 illustrates a block diagram of a processor within the multi-processor system
  • FIG. 3 illustrates a block diagram of an alternate embodiment of the multi-processor system.
  • FIG. 1 is a block diagram of a multi-processor system 10 .
  • Multi-processor system 10 includes a plurality of processors 12 and an external switch 14 .
  • Each of the plurality of processors 12 has a memory 16 , a memory directory 18 , and a central processing unit 20 all integrated into a single device.
  • External switch 14 includes an external directory 22 .
  • Each processor 12 may couple to external switch 22 in order to exchange among each other data stored in their respective memories.
  • External switch 22 may also couple to another external switch 22 in order to enlarge the capabilities of multi-processor system 10 .
  • memory directory 18 of a particular processor 12 includes memory references to data stored within its corresponding memory 16 .
  • memory directory 18 may also include memory references to data stored in a remote memory 16 associated with a different processor 12 within a local regional group.
  • an individual memory directory 18 of a particular processor 12 may not be able to include a memory reference to all data in the system which the particular processor 12 desires to access.
  • external directory 22 of external switch 14 includes a capability to retrieve memory references to data in memories remote from the particular processor 12 .
  • the particular processor 12 desires to access data from a remote memory 16 , its memory directory 18 determines that it does not have a memory reference to the desired data.
  • Memory directory 18 generates a data request that is sent to external directory 22 in external switch 14 .
  • External directory 22 processes the request and generates a memory reference to the desired data.
  • External switch 14 uses the generated memory reference to retrieve the desired data and provide it to the requesting processor 12 .
  • Memory directory 18 preferably holds memory references to data that has been most recently accessed. If data is requested by the particular processor 12 and that data resides in its associated memory 16 , then memory directory 18 generates a memory reference to the new data. If memory directory 18 is fully occupied with memory references, then memory directory 18 may overwrite the memory reference to data that has not been accessed for the longest period of time with the newly generated memory reference.
  • External directory 22 may operate in a similar manner by maintaining memory references to most recently accessed data from among the plurality of processors 12 and only generate a new memory reference for a request to data not currently represented by a memory reference within external directory 22 . Though not necessary, memory references within each memory directory 18 may be represented in a similar manner as memory references in external directory 22 .
  • FIG. 2 is a block diagram of a processor 12 .
  • Processor 12 includes memory 16 , a memory controller 30 , memory directory 18 , one or more network interfaces 32 , and a CPU controller 34 .
  • Network interfaces 32 provide a communication capability between processor 12 and external switch 22 .
  • Memory controller 30 controls the read and write access from and to memory 16 .
  • CPU controller 34 controls flow between one or more processing units.
  • the size of memory directory 18 may vary according to the size of its associated memory 16 .
  • a processor 12 holding eight megabytes with sixty-four byte lines of cache in a four to one ratio may use 2(17) entries.
  • memory references may be represented by thirteen bit tags, two state bits, four pointer/vector bits and two error correction code (ECC) bits.
  • ECC error correction code
  • memory directory 18 has a size of 2.6 Megabytes.
  • a processor 12 holding thirty-two megabytes with one hundred twenty-eight byte lines of cache in a four to one ratio may use 2(18) entries.
  • memory references may be represented by twelve bit tags, two state bits, four pointer/vector bits and two ECC bits. With twenty bits per entry and 2(18) entries, memory directory 18 has a size of 5 Megabytes.
  • each memory directory 18 may be set up to track its local memory 16 cached memory references.
  • External directory 22 may be set up to track remote cached memory references for the processors 12 .
  • FIG. 3 shows an alternate embodiment of multi-processor system 10 .
  • processors 12 are coupled to two external switches 14 .
  • the two external switches 14 provide two routing planes for memory access and coherence. The two routing planes may provide redundancy for multi-processor system 10 or extend the bandwidth capability of multi-processor system 10 to incorporate a larger number of processors 12 .
  • Memory directories 18 within each processor 12 may support its associated local memory 16 and support a group of processors 12 within a local region depending on the desired size of each memory directory 18 . Access to memory outside of a processor 12 or local region of processors 12 not supported by an individual memory directory 18 is handled by one or more external directories 22 and external switches 14 .
  • External switches 14 may also couple to input/output hosts 26 in order to support operations therewith. Each external switch 14 may also support processor network 28 extensions.

Abstract

A multi-processor system (10) includes a plurality of processors (12). Each processor (12) has an integrated memory (16) operable to provide, receive, and store data. Each processor (12) also includes an integrated memory controller (30) in order to control read and write access to the integrated memory (16). Additionally, each processor (12) includes an integrated memory directory (18) operable to maintain a plurality of memory references to data within the integrated memory (16). The multi-processor system (10) also includes an external switch (14) coupled to each of the plurality of processors (12). The external switch (14) passes data to and from any of the plurality of processors (12). The external switch (14) has an external directory (22). The external directory (22) provides a memory reference for each of the plurality of processors (12) to remote data that is not provided within its own integrated memory directory (18).

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of U.S. application Ser. No. 09/418,520 filed Oct. 15, 1999.[0001]
  • TECHNICAL FIELD OF THE INVENTION
  • The present invention is related in general to computing system architectures and more particularly to a multi-processor system and method of accessing data therein. [0002]
  • BACKGROUND OF THE INVENTION
  • Controlling access to memory in a multi-processor system is a difficult process, especially when many processors share data in memory. Typically, each processor maintains a small cache of most frequently used data for quick access so that time consuming requests for data to the common system memory may be avoided. However, the cache for each processor must be updated with changes made to its associated data that are reflected in the common system memory. One technique for updating processor caches is to couple each processor to what's known as a snoopy bus. A request for access to data by a requesting processor is broadcast to other processors over the snoopy bus. Each processor “snoops” into their cache to see if it has the most recent copy of the requested data. If a processor does have a most recent copy of the requested data, then that processor provides the data to the requesting processor. If no processor has a most recent copy of the requested data, a memory access is required to fulfill the requesting processor's request. If a processor updates a memory location, this update is broadcasted over the snoopy bus to the other processors in the system. Each processor checks its cache to see if it has the data corresponding to the updated memory location. If so, the processor may either remove that data and corresponding memory location from its cache or update its cache with the new information. This snoopy bus technique is effective for a small number of processors within a computer system but is ineffective for computer systems having hundreds of processors. [0003]
  • Another technique is to provide a directory based memory configuration. For directory based memories, a directory is used to maintain a directory entry corresponding to every entry in memory. The directory entry specifies whether the associated data in memory is valid or where the most recent copy of the data may be accessed. The directory based memory configuration avoids coupling all the processors in the computer system together and having processors be bothered handling broadcast requests found in snoopy bus designs. Communication only needs to occur with the processor having the most recent copy of the data. The size of the directory provides the constraint for this configuration, as the directory would become too large to support the number of processors and memories in a large computer system. Therefore, it is desirable to provide a memory access control mechanism for computer systems with a large number of processors. [0004]
  • SUMMARY OF THE INVENTION
  • From the foregoing, it may be appreciated that a need has arisen for providing a multi-processor system with processors having integrated memories and memory directories linked together through an external directory. In accordance with the present invention, a multi-processor system and method of accessing data therein are provided that substantially eliminate or reduce disadvantages and problems of conventional multi-processor systems. [0005]
  • According to an embodiment of the present invention, there is provided a multi-processor system that includes a plurality of processors, wherein each processor includes an integrated memory, an integrated memory controller, and an integrated memory directory. The integrated memory provides, receives, and stores data. The integrated memory controller controls access to and from the integrated memory. The integrated memory directory maintains a plurality of memory references to data within the integrated memory. The multi-processor system also includes an external switch coupled to each of the plurality of processors. The external switch passes data to and from any of the plurality of processors. The external switch includes an external directory. The external directory provides a memory reference to remote data for each of the plurality of processors that is not provided within its own integrated memory directory. [0006]
  • The present invention provides various technical advantages over conventional multi-processor systems. For example, one technical advantage is to integrate memory, memory control, and memory directory into a processor. Another technical advantage is the ability to extend the integrated memory directory capability with external support in order to implement large cache coherent multi-processor systems. Yet another technical advantage is to remove large system directory policy decisions from the individual processor in the system. Still another technical advantage is to provide a directory protocol that can be used with commodity processors having integrated memories and directories. Other technical advantages may be readily ascertainable by those skilled in the art from the following figures, description, and claims. [0007]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • For a more complete understanding of the present invention and the advantages thereof, reference is now made to the following description taken in conjunction with the accompanying drawings, wherein like reference numerals represent like parts, in which: [0008]
  • FIG. 1 illustrates a block diagram of a multi-processor system; [0009]
  • FIG. 2 illustrates a block diagram of a processor within the multi-processor system; and [0010]
  • FIG. 3 illustrates a block diagram of an alternate embodiment of the multi-processor system. [0011]
  • DETAILED DESCRIPTION OF THE INVENTION
  • FIG. 1 is a block diagram of a [0012] multi-processor system 10. Multi-processor system 10 includes a plurality of processors 12 and an external switch 14. Each of the plurality of processors 12 has a memory 16, a memory directory 18, and a central processing unit 20 all integrated into a single device. External switch 14 includes an external directory 22. Each processor 12 may couple to external switch 22 in order to exchange among each other data stored in their respective memories. External switch 22 may also couple to another external switch 22 in order to enlarge the capabilities of multi-processor system 10.
  • In operation, [0013] memory directory 18 of a particular processor 12 includes memory references to data stored within its corresponding memory 16. For smaller multi-processor systems, memory directory 18 may also include memory references to data stored in a remote memory 16 associated with a different processor 12 within a local regional group. As memory sizes and systems become larger, an individual memory directory 18 of a particular processor 12 may not be able to include a memory reference to all data in the system which the particular processor 12 desires to access. In order to alleviate this situation, external directory 22 of external switch 14 includes a capability to retrieve memory references to data in memories remote from the particular processor 12.
  • When the [0014] particular processor 12 desires to access data from a remote memory 16, its memory directory 18 determines that it does not have a memory reference to the desired data. Memory directory 18 generates a data request that is sent to external directory 22 in external switch 14. External directory 22 processes the request and generates a memory reference to the desired data. External switch 14 uses the generated memory reference to retrieve the desired data and provide it to the requesting processor 12.
  • [0015] Memory directory 18 preferably holds memory references to data that has been most recently accessed. If data is requested by the particular processor 12 and that data resides in its associated memory 16, then memory directory 18 generates a memory reference to the new data. If memory directory 18 is fully occupied with memory references, then memory directory 18 may overwrite the memory reference to data that has not been accessed for the longest period of time with the newly generated memory reference. External directory 22 may operate in a similar manner by maintaining memory references to most recently accessed data from among the plurality of processors 12 and only generate a new memory reference for a request to data not currently represented by a memory reference within external directory 22. Though not necessary, memory references within each memory directory 18 may be represented in a similar manner as memory references in external directory 22.
  • FIG. 2 is a block diagram of a [0016] processor 12. Processor 12 includes memory 16, a memory controller 30, memory directory 18, one or more network interfaces 32, and a CPU controller 34. Network interfaces 32 provide a communication capability between processor 12 and external switch 22. Memory controller 30 controls the read and write access from and to memory 16. CPU controller 34 controls flow between one or more processing units.
  • The size of [0017] memory directory 18 may vary according to the size of its associated memory 16. For example, a processor 12 holding eight megabytes with sixty-four byte lines of cache in a four to one ratio may use 2(17) entries. Using a four gigabyte dynamic random access memory for memory 16, memory references may be represented by thirteen bit tags, two state bits, four pointer/vector bits and two error correction code (ECC) bits. With twenty-one bits per entry and 2(17) entries, memory directory 18 has a size of 2.6 Megabytes. As another example, a processor 12 holding thirty-two megabytes with one hundred twenty-eight byte lines of cache in a four to one ratio may use 2(18) entries. Using an eight gigabyte dynamic random access memory for memory 16, memory references may be represented by twelve bit tags, two state bits, four pointer/vector bits and two ECC bits. With twenty bits per entry and 2(18) entries, memory directory 18 has a size of 5 Megabytes.
  • With the presence of [0018] external directory 22, each memory directory 18 may be set up to track its local memory 16 cached memory references. External directory 22 may be set up to track remote cached memory references for the processors 12. Through the use of memory directories 18 and at each processor 12 and external directories 22 in a large multi-processor system 10 environment, cache coherency is provided to ensure that all processors 12 have an accurate view of the entire system memory. Requests for memory may even be passed from one external switch 14 to another to further extend the memory and access mechanism of multi-processor system 10.
  • FIG. 3 shows an alternate embodiment of [0019] multi-processor system 10. In this embodiment, processors 12 are coupled to two external switches 14. The two external switches 14 provide two routing planes for memory access and coherence. The two routing planes may provide redundancy for multi-processor system 10 or extend the bandwidth capability of multi-processor system 10 to incorporate a larger number of processors 12. Memory directories 18 within each processor 12 may support its associated local memory 16 and support a group of processors 12 within a local region depending on the desired size of each memory directory 18. Access to memory outside of a processor 12 or local region of processors 12 not supported by an individual memory directory 18 is handled by one or more external directories 22 and external switches 14. External switches 14 may also couple to input/output hosts 26 in order to support operations therewith. Each external switch 14 may also support processor network 28 extensions.
  • Thus, it is apparent that there has been provided in accordance with the present invention, a multi-processor system and method of accessing data therein that satisfies the advantages set forth above. Although the present invention has been described in detail, various changes, substitutions, and alterations may be readily ascertainable by those skilled in the art and may be made herein without departing from the spirit and scope of the present invention as defined by the following claims. [0020]

Claims (20)

What is claimed is:
1. A multi-processor system, comprising:
a plurality of processors, each processor including an integrated memory operable to provide/receive/store data, each processor including an integrated memory controller operable to control access to the integrated memory, each processor including an integrated memory directory operable to maintain a plurality of memory references to data within the integrated memory;
an external switch coupled to each of the plurality of processors, the external switch operable to pass data to and from any of the plurality of processors, the external switch including an external directory, the external directory operable to provide a memory reference for each of the plurality of processors to remote data that is not provided within its own integrated memory directory.
2. The multi-processor of claim 1, wherein the integrated memory directory is a cache buffer operable to hold a plurality of most recently accessed memory references.
3. The multi-processor system of claim 2, wherein the integrated memory directory is operable to overwrite an oldest memory reference with a new memory reference upon reaching a buffer limit.
4. The multi-processor of claim 1, wherein the integrated memory directory of a particular processor is operable to hold memory references to data stored at other processors.
5. The multi-processor system of claim 1, wherein the external directory is operable to receive a request for directory assistance from a particular one of the plurality of processors, the directory assistance request including a request for data not having a memory reference in the integrated memory directory of the particular one of the plurality of processors.
6. The multi-processor system of claim 5, wherein the external directory is operable to generate a memory reference for the requested data.
7. The multi-processor device of claim 5, wherein the external switch is operable to provide the generated memory reference to the integrated memory directory of the particular one of the plurality of processors in accordance with the request for data.
8. The multi-processor system of claim 5, wherein the external switch is operable to provide the requested data to the particular one of the processors in response to the generated memory reference.
9. The multi-processor of claim 1, wherein each of the plurality of processors includes an integrated network interface operable to communicate information to and from the external switch.
10. The multi-processor system of claim 1, wherein the memory references in the external directory are represented in a same manner as memory references in a particular integrated memory directory.
11. A method of accessing data in a multi-processor system, comprising:
storing information in a local memory;
maintaining a list of memory references to the information in the local memory;
generating a request for data;
determining whether the data is associated with information stored in the local memory and has a memory reference;
forwarding the request to an external switch in response to the data not having a memory reference, the data not having a memory reference to the local memory being data stored in a remote memory;
identifying a memory reference for the data in response to the request;
obtaining the data from the remote memory via the external switch in response to the identified memory reference.
12. The method of claim 11, further comprising:
obtaining the memory reference to the data stored in the remote memory.
13. The method of claim 11, wherein the local memory is integrated with a particular one of a plurality of processors of the multi-processor system, the list of memory references being maintained in a memory directory integrated with the local memory in the particular one of the plurality of processors.
14. The method of claim 13, wherein the identified memory reference is generated external to the particular one of the plurality of processors.
15. The method of claim 13, wherein the memory reference is to data stored at a processor different from the particular one of the plurality of processors.
16. A processor in a multi-processor system, comprising:
a local memory integrated in the processor and operable to provide/receive/store data;
a memory controller integrated in the processor and operable to control access to and from the local memory;
a memory directory integrated in the processor and operable to maintain memory references to data within the local memory, the memory directory operable to generate a data request for data not having a memory reference in the memory directory;
a network interface integrated in the processor and operable to provide the data request to an external directory external to the processor, the network interface operable to receive the data according to the data request.
17. The processor of claim 16, wherein the memory directory maintains a list of most recently accessed memory references.
18. The processor of claim 16, wherein the local memory has a capacity of four gigabytes of data and the memory directory has a capacity of eight megabytes of data memory reference.
19. The processor of claim 16, wherein the network interface is operable to provide a memory reference generated by the external directory to the memory directory.
20. The processor of claim 16, wherein the memory directory includes two to the power of eighteen memory references.
US10/696,146 1999-10-15 2003-10-29 Multi-processor system and method of accessing data therein Abandoned US20040098561A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/696,146 US20040098561A1 (en) 1999-10-15 2003-10-29 Multi-processor system and method of accessing data therein

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/418,520 US6651157B1 (en) 1999-10-15 1999-10-15 Multi-processor system and method of accessing data therein
US10/696,146 US20040098561A1 (en) 1999-10-15 2003-10-29 Multi-processor system and method of accessing data therein

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/418,520 Continuation US6651157B1 (en) 1999-10-15 1999-10-15 Multi-processor system and method of accessing data therein

Publications (1)

Publication Number Publication Date
US20040098561A1 true US20040098561A1 (en) 2004-05-20

Family

ID=23658459

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/418,520 Expired - Lifetime US6651157B1 (en) 1999-10-15 1999-10-15 Multi-processor system and method of accessing data therein
US10/696,146 Abandoned US20040098561A1 (en) 1999-10-15 2003-10-29 Multi-processor system and method of accessing data therein

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/418,520 Expired - Lifetime US6651157B1 (en) 1999-10-15 1999-10-15 Multi-processor system and method of accessing data therein

Country Status (4)

Country Link
US (2) US6651157B1 (en)
EP (1) EP1224553B1 (en)
JP (1) JP2003512673A (en)
WO (1) WO2001029674A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149776A1 (en) * 2003-12-03 2005-07-07 Hinrichs Joel H. Processing system on an integrated circuit

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651157B1 (en) * 1999-10-15 2003-11-18 Silicon Graphics, Inc. Multi-processor system and method of accessing data therein
US6810467B1 (en) 2000-08-21 2004-10-26 Intel Corporation Method and apparatus for centralized snoop filtering
US20020161453A1 (en) * 2001-04-25 2002-10-31 Peltier Michael G. Collective memory network for parallel processing and method therefor
US6959364B2 (en) 2002-06-28 2005-10-25 Intel Corporation Partially inclusive snoop filter
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7089372B2 (en) * 2003-12-01 2006-08-08 International Business Machines Corporation Local region table for storage of information regarding memory access by other nodes
US7958341B1 (en) 2008-07-07 2011-06-07 Ovics Processing stream instruction in IC of mesh connected matrix of processors containing pipeline coupled switch transferring messages over consecutive cycles from one link to another link or memory
US8131975B1 (en) 2008-07-07 2012-03-06 Ovics Matrix processor initialization systems and methods
US7870365B1 (en) 2008-07-07 2011-01-11 Ovics Matrix of processors with data stream instruction execution pipeline coupled to data switch linking to neighbor units by non-contentious command channel / data channel
US8145880B1 (en) 2008-07-07 2012-03-27 Ovics Matrix processor data switch routing systems and methods
US8327114B1 (en) 2008-07-07 2012-12-04 Ovics Matrix processor proxy systems and methods
US10235295B1 (en) * 2015-08-25 2019-03-19 Integrated Device Technology, Inc. Scalable coherent apparatus and method

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
US5394555A (en) * 1992-12-23 1995-02-28 Bull Hn Information Systems Inc. Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
US5522058A (en) * 1992-08-11 1996-05-28 Kabushiki Kaisha Toshiba Distributed shared-memory multiprocessor system with reduced traffic on shared bus
US5699551A (en) * 1989-12-01 1997-12-16 Silicon Graphics, Inc. Software invalidation in a multiple level, multiple cache system
US5734922A (en) * 1996-07-01 1998-03-31 Sun Microsystems, Inc. Multiprocessing system configured to detect and efficiently provide for migratory data access patterns
US5784394A (en) * 1996-11-15 1998-07-21 International Business Machines Corporation Method and system for implementing parity error recovery schemes in a data processing system
US5802578A (en) * 1996-06-12 1998-09-01 Sequent Computer Systems, Inc. Multinode computer system with cache for combined tags
US5829052A (en) * 1994-12-28 1998-10-27 Intel Corporation Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
US5864671A (en) * 1996-07-01 1999-01-26 Sun Microsystems, Inc. Hybrid memory access protocol for servicing memory access request by ascertaining whether the memory block is currently cached in determining which protocols to be used
US5890217A (en) * 1995-03-20 1999-03-30 Fujitsu Limited Coherence apparatus for cache of multiprocessor
US5944780A (en) * 1997-05-05 1999-08-31 At&T Corp Network with shared caching
US6073216A (en) * 1997-11-25 2000-06-06 Intel Corporation System and method for reliable system shutdown after coherency corruption
US6088769A (en) * 1996-10-01 2000-07-11 International Business Machines Corporation Multiprocessor cache coherence directed by combined local and global tables
US6092155A (en) * 1997-07-10 2000-07-18 International Business Machines Corporation Cache coherent network adapter for scalable shared memory processing systems
US6148378A (en) * 1997-05-26 2000-11-14 Bull S.A. Process for operating a machine with non-uniform memory access and cache coherency and a machine for implementing the process
US6374331B1 (en) * 1998-12-30 2002-04-16 Hewlett-Packard Company Distributed directory cache coherence multi-processor computer architecture
US6480975B1 (en) * 1998-02-17 2002-11-12 International Business Machines Corporation ECC mechanism for set associative cache array
US6487685B1 (en) * 1999-09-30 2002-11-26 Silicon Graphics, Inc. System and method for minimizing error correction code bits in variable sized data formats
US6651157B1 (en) * 1999-10-15 2003-11-18 Silicon Graphics, Inc. Multi-processor system and method of accessing data therein
US6823429B1 (en) * 1997-07-10 2004-11-23 International Business Machines Corporation Memory controller for controlling memory accesses across networks in distributed shared memory processing systems

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5829034A (en) 1996-07-01 1998-10-27 Sun Microsystems, Inc. Method and apparatus for a coherence transformer with limited memory for connecting computer system coherence domains

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699551A (en) * 1989-12-01 1997-12-16 Silicon Graphics, Inc. Software invalidation in a multiple level, multiple cache system
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
US5522058A (en) * 1992-08-11 1996-05-28 Kabushiki Kaisha Toshiba Distributed shared-memory multiprocessor system with reduced traffic on shared bus
US5394555A (en) * 1992-12-23 1995-02-28 Bull Hn Information Systems Inc. Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
US5829052A (en) * 1994-12-28 1998-10-27 Intel Corporation Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
US5890217A (en) * 1995-03-20 1999-03-30 Fujitsu Limited Coherence apparatus for cache of multiprocessor
US5802578A (en) * 1996-06-12 1998-09-01 Sequent Computer Systems, Inc. Multinode computer system with cache for combined tags
US5734922A (en) * 1996-07-01 1998-03-31 Sun Microsystems, Inc. Multiprocessing system configured to detect and efficiently provide for migratory data access patterns
US5864671A (en) * 1996-07-01 1999-01-26 Sun Microsystems, Inc. Hybrid memory access protocol for servicing memory access request by ascertaining whether the memory block is currently cached in determining which protocols to be used
US6088769A (en) * 1996-10-01 2000-07-11 International Business Machines Corporation Multiprocessor cache coherence directed by combined local and global tables
US5784394A (en) * 1996-11-15 1998-07-21 International Business Machines Corporation Method and system for implementing parity error recovery schemes in a data processing system
US5944780A (en) * 1997-05-05 1999-08-31 At&T Corp Network with shared caching
US6148378A (en) * 1997-05-26 2000-11-14 Bull S.A. Process for operating a machine with non-uniform memory access and cache coherency and a machine for implementing the process
US6092155A (en) * 1997-07-10 2000-07-18 International Business Machines Corporation Cache coherent network adapter for scalable shared memory processing systems
US6823429B1 (en) * 1997-07-10 2004-11-23 International Business Machines Corporation Memory controller for controlling memory accesses across networks in distributed shared memory processing systems
US6073216A (en) * 1997-11-25 2000-06-06 Intel Corporation System and method for reliable system shutdown after coherency corruption
US6480975B1 (en) * 1998-02-17 2002-11-12 International Business Machines Corporation ECC mechanism for set associative cache array
US6374331B1 (en) * 1998-12-30 2002-04-16 Hewlett-Packard Company Distributed directory cache coherence multi-processor computer architecture
US6487685B1 (en) * 1999-09-30 2002-11-26 Silicon Graphics, Inc. System and method for minimizing error correction code bits in variable sized data formats
US6651157B1 (en) * 1999-10-15 2003-11-18 Silicon Graphics, Inc. Multi-processor system and method of accessing data therein

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149776A1 (en) * 2003-12-03 2005-07-07 Hinrichs Joel H. Processing system on an integrated circuit
US8516179B2 (en) * 2003-12-03 2013-08-20 Digital Rna, Llc Integrated circuit with coupled processing cores

Also Published As

Publication number Publication date
US6651157B1 (en) 2003-11-18
EP1224553B1 (en) 2013-05-15
WO2001029674A1 (en) 2001-04-26
JP2003512673A (en) 2003-04-02
EP1224553A1 (en) 2002-07-24

Similar Documents

Publication Publication Date Title
US7996625B2 (en) Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US5434993A (en) Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
JP2662603B2 (en) Method and apparatus for filtering invalidation requests
US4977498A (en) Data processing system having a data memory interlock coherency scheme
US6088769A (en) Multiprocessor cache coherence directed by combined local and global tables
US6615322B2 (en) Two-stage request protocol for accessing remote memory data in a NUMA data processing system
US6901495B2 (en) Cache memory system allowing concurrent reads and writes to cache lines to increase snoop bandwith
US5537575A (en) System for handling cache memory victim data which transfers data from cache to the interface while CPU performs a cache lookup using cache status information
JP3493409B2 (en) Computer equipment
US5809536A (en) Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache
US6662276B2 (en) Storing directory information for non uniform memory architecture systems using processor cache
US20010013089A1 (en) Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
JPH05128071A (en) Apparatus and method for optimizing performance of multiplex processor system
JPH11272559A (en) Cache coherency protocol for data processing system containing multilevel memory hierarchy
JP2006277762A (en) Divided nondense directory for distributed shared memory multi-processor system
KR20010006755A (en) Complete and concise remote (ccr) directory
US6651157B1 (en) Multi-processor system and method of accessing data therein
JP2005519391A (en) Method and system for cache coherence in a DSM multiprocessor system without increasing shared vectors
KR100322225B1 (en) Cache coherency protocol having hovering(h) and recent(r) states
US5860109A (en) Methods and apparatus for a coherence transformer for connecting computer system coherence domains
EP0817064B1 (en) Methods and apparatus for a directory less memory access protocol in a distributed shared memory computer system
US7093080B2 (en) Method and apparatus for coherent memory structure of heterogeneous processor systems
EP0489583A2 (en) Multiple processor cache control system
US6813694B2 (en) Local invalidation buses for a highly scalable shared cache memory hierarchy
US6944721B2 (en) Asynchronous non-blocking snoop invalidation

Legal Events

Date Code Title Description
AS Assignment

Owner name: WELLS FARGO FOOTHILL CAPITAL, INC.,CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:SILICON GRAPHICS, INC. AND SILICON GRAPHICS FEDERAL, INC. (EACH A DELAWARE CORPORATION);REEL/FRAME:016871/0809

Effective date: 20050412

Owner name: WELLS FARGO FOOTHILL CAPITAL, INC., CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:SILICON GRAPHICS, INC. AND SILICON GRAPHICS FEDERAL, INC. (EACH A DELAWARE CORPORATION);REEL/FRAME:016871/0809

Effective date: 20050412

AS Assignment

Owner name: GENERAL ELECTRIC CAPITAL CORPORATION,CALIFORNIA

Free format text: SECURITY INTEREST;ASSIGNOR:SILICON GRAPHICS, INC.;REEL/FRAME:018545/0777

Effective date: 20061017

Owner name: GENERAL ELECTRIC CAPITAL CORPORATION, CALIFORNIA

Free format text: SECURITY INTEREST;ASSIGNOR:SILICON GRAPHICS, INC.;REEL/FRAME:018545/0777

Effective date: 20061017

AS Assignment

Owner name: MORGAN STANLEY & CO., INCORPORATED, NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GENERAL ELECTRIC CAPITAL CORPORATION;REEL/FRAME:019995/0895

Effective date: 20070926

Owner name: MORGAN STANLEY & CO., INCORPORATED,NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GENERAL ELECTRIC CAPITAL CORPORATION;REEL/FRAME:019995/0895

Effective date: 20070926

AS Assignment

Owner name: SILICON GRAPHICS INTERNATIONAL, CORP., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SILICON GRAPHICS, INC. ET AL.;SGI INTERNATIONAL, INC.;SIGNING DATES FROM 20090508 TO 20120320;REEL/FRAME:027904/0315

AS Assignment

Owner name: SILICON GRAPHICS INTERNATIONAL CORP., CALIFORNIA

Free format text: MERGER;ASSIGNOR:SGI INTERNATIONAL, INC.;REEL/FRAME:034804/0437

Effective date: 20120808

Owner name: SILICON GRAPHICS INTERNATIONAL, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SILICON GRAPHICS, INC.;REEL/FRAME:034804/0446

Effective date: 20090508

Owner name: SGI INTERNATIONAL, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:SILICON GRAPHICS INTERNATIONAL, INC.;REEL/FRAME:034804/0661

Effective date: 20090513

AS Assignment

Owner name: SILICON GRAPHICS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GALLES, MICHAEL B.;KUSKIN, JEFFREY S.;SIGNING DATES FROM 19990907 TO 19990921;REEL/FRAME:034824/0383

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., NEW YORK

Free format text: SECURITY INTEREST;ASSIGNOR:SILICON GRAPHICS INTERNATIONAL CORP.;REEL/FRAME:035200/0722

Effective date: 20150127

AS Assignment

Owner name: SILICON GRAPHICS INTERNATIONAL CORP., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC., AS AGENT;REEL/FRAME:040545/0362

Effective date: 20161101

AS Assignment

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SILICON GRAPHICS INTERNATIONAL CORP.;REEL/FRAME:044128/0149

Effective date: 20170501