EP1016971A2

Multiprocessor digital data processing system

Abstract

A multiprocessor digital data processing system comprises a plurality of processing cells (18A to 18R, 34A to 34F, 38A, 38B) arranged in a hierarchy of rings (12A to 12F, 14A and 14B, 16). The system selectively allocates storage and moves exclusive data copies from cell to cell in response to access requests generated by the cells. Routing elements are employed to selectively broadcast data access requests, updates and transfers on the rings.

EP1016971A2, drawing sheet 1
Sheet 1 of 12

Term

Term ended

Projected expiry passed 24 November 2008, 17.8 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

39 claims: 36 independent, 3 dependent

  1. 1
    A memory management system for a digital data processing apparatus comprising a plurality of processing cells, each processing cell including a central processing unit connected to an associated memory adapted to store data items, each central processor unit generating access requests each for accessing a data item, said access requests including a data item identifier identifying a data item to be accessed, the data item identifiers for all of the data items comprising a system address space, the system address space defining a plurality of pages at least one of which comprises a plurality of sub-pages, each sub-page comprising at least one data item, the memory management system comprising means for receiving selected ones of said access requests, means for using the data item identifier in each respective access request received thereby to identify one of said processing cells whose memory has stored therein one of said sub-pages containing the data item identified by said data item identifier, and means for transferring at least a copy of said sub-page to the memory of the processing cell whose central processor unit generated the access request for storage in said memory.
  2. 2
    A memory management system as defined in claim 1, wherein the system address space is a unitary system address space.
  3. 3
    A memory management system as defined in claim 2, wherein at least one type of access request is a retrieval request type, the memory management system including means operable, in response to an access request from a central processor unit, for allocating space in the memory of the processing cell associated with the requesting central processor unit for the entire page containing the data item identified by the data item identifier in the access request.
  4. 4
    A memory management system as defined in claim 3, wherein the sub-page transfer means, after space is allocated in the memory of the processing cell associated with the requesting central processor unit, stores the sub-page containing the data item identified by the data item identifier in the access request in the allocated space.
  5. 5
    A memory management system as defined in any preceding claim, wherein each sub-page maintained by a memory is associated with one of a plurality of access states, the memory management system including means for conditioning one of a plurality of state indicators identifying the states of a respective sub-page in a respective one of said memories.
  6. 6
    A memory management system as defined in claim 5, wherein one of said states is an exclusive owner access state, a sub-page in the exclusive owner access state in a said memory of a said processing cell comprising data items which can be modified by the central processing unit of the said processing cell.
  7. 8
    A memory management system as defined in claim 7, wherein, if a sub-page in the memory of a processing cell is in the invalid access state and if the central processor unit of the processing cell generates an access request requesting access to the sub-page in the invalid access state, the sub-page transfer means transfers at least a copy of the sub-page for storage in the processing cell's memory and the state indicator conditioning means conditions the state indicator associated with the sub-page to a state other than the invalid access state.
  8. 9
    A memory management system as defined in claim 8, wherein, if the access request from the central processor unit is a storage request, wherein a data item is to be stored in the sub-page, the sub-page transfer means retrieves the sub-page for storage in the processing cell's memory and the state indicator conditioning means conditions the state indicator associated with the sub-page to the exclusive owner state.
  9. 10
    A method as defined in any of claims 5 to 9, wherein one of said states is a non-exclusive owner access state, a sub-page in the exclusive owner access state in a said memory of a said processing cell comprising data items which can be modified by the central processing unit of the said processing cell.
  10. 11
    A memory management system as defined in claim 10, wherein, if the memory of a said processing cell, other than the processing cell in which a data item is modified, contains a copy of a sub-page containing the modified data item, the sub-page transfer means transfers a copy of the modified data item to the memory of the other said processing cell for storage in the copy.
  11. 13
    A memory management system as defined in claim 12, wherein, in response to the access request from the central processor unit of said another processing cell requesting retrieval of a data item from the said sub-page, the sub-page transfer means transfers a copy of the sub-page to the said memory of the said another processing cell and the state indicator conditioning means conditions the state indicator associated with the sub-page in the other processing cell to the read-only state.
  12. 14
    A memory management system as defined in any one of claims 5 to 13, wherein one of said states is an atomic owner access state associable with an data item modifiable by a central processing unit associated with a memory in which that data item is stored, no copy of which data item stored in a memory associated with another said central processing unit, neither that data item, nor a copy thereof, being transferable to a memory associated with another said central processing unit.
  13. 15
    A memory management system as defined in claim 14, the memory management system associating a sub-page with the atomic owner access state in the memory of a said processing cell in response to execution by the processing cell's central processing unit of an instruction of a predetermined type.
  14. 16
    A memory management system as defined in claim 15, wherein, during execution by the processing cell's central processing unit of an instruction of the predetermined type:the sub-page transfer means transfers a copy of the sub-page to be in the atomic owner access state for storage in the processing cell's memory;and the state indicator conditioning means conditions the state indicator associated with any copy of the sub-page in any other processing cell's memory with the invalid state and conditions the state indicator associated with the copy of the sub-page in the memory of the processing cell whose central processing unit is executing the instruction of the predetermined type with the atomic owner access state.
  15. 17
    A memory management system as defined in claim 16, wherein execution by the processing cell's central processing unit of the instruction of the predetermined type further includes the step of blocking the central processing unit from executing subsequent instructions until the sub-page that is to be in the atomic owner access state is in the atomic owner access state.
  16. 18
    A memory management system as defined in claim 14, wherein a sub-page in the atomic owner access state is released from the atomic owner access state in response to execution by the central processing unit of the processing cell in which the sub-page in the atomic owner access state of an instruction of a second predetermined type.
  17. 19
    A memory management system as defined in claim 18, wherein, in response to execution of an instruction of the second predetermined type, the state indicator conditioning means conditions the state indicator associated with the sub-page in the atomic owner access state with said invalid state.
  18. 20
    A memory management system as defined in any preceding claim, wherein each processing cell includes a page descriptor table adapted to store page descriptors each identifying a page and respective ones of the page's sub-pages which are stored in the processing cell's memory, the memory management system using the page descriptor table in response to an access request to determine whether the sub-page containing the data item to be accessed in response to the access request is stored therein.
  19. 21
    A memory management system as defined in any preceding claim, wherein each processing cell includes a page descriptor table adapted to store page descriptors each identifying a page and respective ones of the page's sub-pages which are stored in the processing cell's memory, the memory management system using the table, in response to access requests from a respective one of said processing cells, to determine whether the sub-page containing the data item to be accessed in response to the access request is stored in another of said processing cells.
  20. 22
    A digital data processing apparatus comprising:a plurality of processing cells, each processing cell including a central processing unit connected to an associated memory adapted to store data items, each central processor unit generating access requests each for accessing a data item, said access requests including a data item identifier identifying a data item to be accessed, the data item identifiers for all of the data items comprising a system address space, the system address space defining a plurality of pages at least one of which comprises a plurality of sub-pages, each sub-page comprising at least one of said data items;and a memory management system as defined in any preceding claim
  21. 23
    A digital data processing apparatus as defined in claim 22, wherein, in each processing cell, said central processor unit initially provides a said access request to the associated memory, the memory including a memory controller and an associated data store, the memory controller determining whether the data item identified by the data item identifier in the access request is in the associated data store and if not providing the access request to the memory management system.
  22. 24
    A digital data processing apparatus as defined in claim 23, wherein at least one type of access request is a retrieval request type, the memory controller being responsive to an access request of the retrieval request type to, if said memory controller determines that the data item identified by the data item identifier in the access request is in the associated data store, retrieve the data item identified by said data item identifier from the associated data store for provision to the central processor unit.
  23. 25
    A digital data processing apparatus as defined in claim 24, wherein, if the access request is of the retrieval request type and further if said memory controller determines that the data item identified by the data item identifier in the access request is in the associated data store, the memory controller will not provide the access request to the memory management system.
  24. 26
    A digital data processing apparatus as defined in any of claims 22 to 25, wherein each sub-page maintained by a memory is associated with one of a plurality of access states.
  25. 27
    A digital data processing apparatus as defined in claim 26, wherein each processing cell further includes a plurality of state indicators each identifying the state of a respective one of said sub-pages in its respective memory.
  26. 28
    A digital data processing apparatus as defined in any of claims 22 to 27, wherein at least one type of access request is a storage access request, the central processor unit of at least one processing cell using storage access requests to modify data items in sub-pages stored in its associated memory.
  27. 29
    A digital data processing apparatus as defined in claim 28 in which, for each processing cell, the memory includes a memory controller and an associated data store, the memory controller responding to receipt of an access request of the storage access request type by selectively modifying one of said data items stored in the data store associated therewith.
  28. 30
    A digital data processing apparatus as defined in claim 29, wherein the memory controller, in response to receipt of an access request of the storage access request type, updates a said data item in the data store associated therewith if the data item to be updated is in a sub-page that is in the exclusive access state.
  29. 31
    A digital data processing apparatus as defined in any one of claims 22 to 30, wherein, if a sub-page in the memory of a processing cell is in an invalid access state, if the central processor unit of the processing cell generates an access request requesting access to a data item in a sub-page in the invalid access state, the memory management system retrieves at least a copy of the sub-page for storage in the processing cell's memory in a state other than the invalid access state.
  30. 32
    A digital data processing apparatus as defined in any of claims 22 to 31, wherein said memory management system, in response to the access request from the central processor unit of said another processing cell requesting retrieval of a data item from the said sub-page, establishes a copy of the sub-page in the said memory of the said another processing cell in a read-only state.
  31. 33
    A digital data processing apparatus as defined in any one of claims 22 to 32, wherein, during execution by the processing cell's central processing unit of an instruction of the predetermined type, the memory management system loads a copy of the sub-page to be in the atomic owner access state in the processing cell's memory, associates any copy of the sub-page in any other processing cell's memory with the invalid state, and associates the copy of the sub-page in the memory of the processing cell whose central processing unit is executing the instruction of the predetermined type with the atomic owner access state.
  32. 34
    A digital data processing apparatus as defined in any of claims 22 to 33, wherein said memory management system comprises a plurality of memory management elements each associated with one of said processing cells, said memory management elements being interconnected by a network, each said memory management element selectively receiving said access requests from the central processor unit of its respective processing cell, said memory management elements communicating over said network in response to said access requests to transfer said sub-pages to ones of said processing cells whose central processor units generate said access requests.
  33. 35
    A digital data processing apparatus as defined in any of claims 22 to 34, wherein each processing cell includes:a directory adapted to store page descriptors each identifying respective ones of the page's sub-pages which are stored in the respective processing cell's memory;and a memory controller, in response to access requests from the respective processing cell's central processor unit, adapted to use the directory to determine whether the subpage containing the data item to be accessed in response to the access request is stored therein or stored in another of said processing cells.
  34. 36
    A digital data processing apparatus as defined in claim 35, wherein each page descriptor further includes a state identifier associated with each of said sub-pages for identifying one of a plurality of states associated with the respective access state, the memory management system conditioning and using the state identifiers associated with the respective sub-pages while processing the access requests.
  35. 37
    A method of operating a digital data processing apparatus comprising a plurality of processing cells, each processing cell including a central processing unit connected to an associated memory adapted to store data items, each central processor unit generating access requests each for accessing a data item, said access requests including a data item identifier identifying a data item to be accessed, the data item identifiers for all of the data items comprising a system address space, the system address space defining a plurality of pages at least one of which comprise a plurality of sub-pages, each sub-page containing at least one of said data items, the method comprising the steps of:receiving selected ones of said access requests from the central processor unit associated with one of said processing cells;using the data item identifier in each respective access request received thereby to identify a one of said other processing cells whose memory has stored therein one of said sub-pages containing the data item identified by said data item identifier, and transferring at least a copy of said sub-page from the identified one of said other processing cells to the memory of the processing cell whose central processor unit generated the access request for storage in said memory.
  36. 38
    A method as defined in claim 37, wherein the system address space is a unitary system address space.
Independent claims36