← Back to Patent Explorer
US5727150A Expired / Lapsed US ⏱️ 0.0 years remaining

Apparatus and method for page migration in a non-uniform memory access (NUMA) system

Assignee: Morgan Stanley and Co LLC
•
Filing: 1996-12-17
•
Granted: 1998-03-10
•
Expires: 2016-12-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A page migration controller is described. The page migration controller determines whether a memory page addressed by a memory access request should be migrated from a local processing node to a requester processing node. The page migration controller accesses an array to obtain a first count associated with the addressed memory page and the requester processing node, and a second count associated with the addressed memory page and the local processing node. The first count is incremented, and then the second count is subtracted from the incremented first count to obtain a difference between the second count and the incremented first count. A comparator determines whether the difference is greater than a migration threshold value. If the difference is greater than the migration threshold value, then a migration interrupt is issued.

Inventors

  • 👤 James P. Laudon
  • 👤 Daniel E. Lenoski

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 07:10
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/12; G06F12/121; G06F12/122

Claims Analysis

Total Claims: 34
Claim 1
Independent Claim 225 words
An apparatus in a local processing node, said local processing node comprising a local portion of main memory, said local processing node being in a computer system comprising one or more additional processing nodes, each additional processing node including a remote portion of main memory, said apparatus controlling migration of memory pages in said computer system, said apparatus comprising: a storage mechanism storing, for each memory page in said local portion of main memory, a count for each region of said computer system, each region encompassing one or more processing nodes of said computer system; a page migration controller to determine whether a memory page addressed by a memory access request should be migrated from said local portion of main memory to a requester processing node, said memory access request originating from said requester processing node, said page migration controller comprising: means for accessing said storage mechanism to obtain a first count associated with said addressed memory page and said requester processing node, and a second count associated with said addressed memory page and said local processing node; an incrementer to increment said first count; means for storing said incremented first count in said storage mechanism; and migration signal issuing means for issuing a migration signal if a difference between said second count and said incremented first count is greater than a migration threshold value.
Claim 2
Independent Claim 225 words
An apparatus in a local processing node, said local processing node comprising a local portion of main memory, said local processing node being in a computer system comprising one or more additional processing nodes, each additional processing node including a remote portion of main memory, said apparatus controlling migration of memory pages in said computer system, said apparatus comprising: a storage mechanism storing, for each memory page in said local portion of main memory, a count for each region of said computer system, each region encompassing one or more processing nodes of said computer system; a page migration controller to determine whether a memory page addressed by a memory access request should be migrated from said local portion of main memory to a requester processing node, said memory access request originating from said requester processing node, said page migration controller comprising: means for accessing said storage mechanism to obtain a first count associated with said addressed memory page and said requester processing node, and a second count associated with said addressed memory page and said local processing node; an incrementer to increment said first count; means for storing said incremented first count in said storage mechanism; and migration signal issuing means for issuing a migration signal if a difference between said second count and said incremented first count is greater than a migration threshold value.
Claim 3
Dependent Claim 69 words
The apparatus of claim 1, wherein said migration signal issuing means comprises: a subtracter to subtract said second count from said incremented first count to obtain a difference between said second count and said incremented first count; a comparator to determine whether said difference is greater than said migration threshold value; and a controller to issue said migration signal if said difference is greater than said migration threshold value.
Claim 4
Dependent Claim 66 words
The apparatus of claim 2, wherein said page migration controller further comprises: a migration threshold register for storing a migration threshold value for each region of said computer system; means for retrieving from said migration threshold register a migration threshold value associated with a region of said computer system containing said requester processing node; and means for providing said retrieved migration threshold value to said comparator.
Claim 5
Dependent Claim 34 words
The apparatus of claim 1, wherein said computer system includes means for migrating said addressed memory page from said local processing node to said requester processing node in response to receiving said migration signal.
Claim 6
Dependent Claim 36 words
The apparatus of claim 2, wherein said controller causes said addressed memory page to be migrated from said local processing node to said requester processing node if said difference is greater than said migration threshold value.
Claim 7
Dependent Claim 69 words
The apparatus of claim 1, wherein said first count indicates how many times said addressed memory page was accessed for the purpose of filling a cache miss by processors in a region comprising said requester processing node, and said second count indicates how many times said addressed memory page was accessed for the purpose of filling a cache miss by processors in a region comprising said local processing node.
Claim 8
Dependent Claim 218 words
A page migration controller in a local processing node, said local processing node comprising a local portion of main memory, said local processing node being in a computer system comprising one or more additional processing nodes, each additional processing node including a remote portion of main memory, said local processing node also comprising an storage mechanism storing, for each memory page in said local portion of main memory, a count for each region of said computer system, each region encompassing one or more processing nodes of said computer system, said page migration controller determining whether a memory page addressed by a memory access request should be migrated from said local portion of main memory to a requester processing node, said memory access request originating from said requester processing node, said page migration controller comprising: means for accessing said storage mechanism to obtain a first count associated with said addressed memory page and said requester processing node, and a second count associated with said addressed memory page and said local processing node; an incrementer to increment said first count; means for storing said incremented first count in said storage mechanism; and migration signal issuing means for issuing a migration signal if a difference between said second count and said incremented first count is greater than a migration threshold value.
Claim 9
Dependent Claim 218 words
A page migration controller in a local processing node, said local processing node comprising a local portion of main memory, said local processing node being in a computer system comprising one or more additional processing nodes, each additional processing node including a remote portion of main memory, said local processing node also comprising an storage mechanism storing, for each memory page in said local portion of main memory, a count for each region of said computer system, each region encompassing one or more processing nodes of said computer system, said page migration controller determining whether a memory page addressed by a memory access request should be migrated from said local portion of main memory to a requester processing node, said memory access request originating from said requester processing node, said page migration controller comprising: means for accessing said storage mechanism to obtain a first count associated with said addressed memory page and said requester processing node, and a second count associated with said addressed memory page and said local processing node; an incrementer to increment said first count; means for storing said incremented first count in said storage mechanism; and migration signal issuing means for issuing a migration signal if a difference between said second count and said incremented first count is greater than a migration threshold value.
Claim 10
Dependent Claim 71 words
The page migration controller of claim 7, wherein said migration signal issuing means comprises: a subtracter to subtract said second count from said incremented first count to obtain a difference between said second count and said incremented first count; a comparator to determine whether said difference is greater than said migration threshold value; and a controller to issue said migration signal if said difference is greater than said migration threshold value.
Claim 11
Dependent Claim 68 words
The page migration controller of claim 8, wherein said page migration controller further comprises: a migration threshold register for storing a migration threshold value for each region of said computer system; means for retrieving from said migration threshold register a migration threshold value associated with a region of said computer system containing said requester processing node; and means for providing said retrieved migration threshold value to said comparator.
Claim 12
Dependent Claim 36 words
The page migration controller of claim 7, wherein said computer system includes means for migrating said addressed memory page from said local processing node to said requester processing node in response to receiving said migration signal.
Claim 13
Dependent Claim 38 words
The page migration controller of claim 8, wherein said controller causes said addressed memory page to be migrated from said local processing node to said requester processing node if said difference is greater than said migration threshold value.
Claim 14
Dependent Claim 71 words
The page migration controller of claim 7, wherein said first count indicates how many times said addressed memory page was accessed for the purpose of filling a cache miss by processors in a region comprising said requester processing node, and said second count indicates how many times said addressed memory page was accessed for the purpose of filling a cache miss by processors in a region comprising said local processing node.
Claim 15
Dependent Claim 195 words
A memory computer system, comprising: a plurality of processing nodes, each processing node comprising: a local portion of main memory comprising a plurality of memory pages; an storage mechanism storing, for each memory page in said local portion of main memory, a count for each region of said computer system, each region encompassing one or more of said processing nodes of said computer system; and a page migration controller to determine whether a memory page addressed by a memory access request should be migrated from said local portion of main memory to a requester processing node, said memory access request originating from said requester processing node, said page migration controller comprising: means for accessing said storage mechanism to obtain a first count associated with said addressed memory page and said requester processing node, and a second count associated with said addressed memory page and said each processing node; an incrementer to increment said first count; means for storing said incremented first count in said storage mechanism; and migration signal issuing means for issuing a migration signal if a difference between said second count and said incremented first count is greater than a migration threshold value.
Claim 16
Dependent Claim 195 words
A memory computer system, comprising: a plurality of processing nodes, each processing node comprising: a local portion of main memory comprising a plurality of memory pages; an storage mechanism storing, for each memory page in said local portion of main memory, a count for each region of said computer system, each region encompassing one or more of said processing nodes of said computer system; and a page migration controller to determine whether a memory page addressed by a memory access request should be migrated from said local portion of main memory to a requester processing node, said memory access request originating from said requester processing node, said page migration controller comprising: means for accessing said storage mechanism to obtain a first count associated with said addressed memory page and said requester processing node, and a second count associated with said addressed memory page and said each processing node; an incrementer to increment said first count; means for storing said incremented first count in said storage mechanism; and migration signal issuing means for issuing a migration signal if a difference between said second count and said incremented first count is greater than a migration threshold value.
Claim 17
Dependent Claim 71 words
The memory computer system of claim 13, wherein said migration signal issuing means comprises: a subtracter to subtract said second count from said incremented first count to obtain a difference between said second count and said incremented first count; a comparator to determine whether said difference is greater than said migration threshold value; and a controller to issue said migration signal if said difference is greater than said migration threshold value.
Claim 18
Dependent Claim 68 words
The memory computer system of claim 14, wherein said page migration controller further comprises: a migration threshold register for storing a migration threshold value for each region of said computer system; means for retrieving from said migration threshold register a migration threshold value associated with a region of said computer system containing said requester processing node; and means for providing said retrieved migration threshold value to said comparator.
Claim 19
Dependent Claim 37 words
The memory computer system of claim 13, wherein said computer system also includes means for migrating said addressed memory page from said each processing node to said requester processing node in response to receiving said migration signal.
Claim 20
Dependent Claim 38 words
The memory computer system of claim 14, wherein said controller causes said addressed memory page to be migrated from said each processing node to said requester processing node if said difference is greater than said migration threshold value.
Claim 21
Dependent Claim 71 words
The memory computer system of claim 13, wherein said first count indicates how many times said addressed memory page was accessed for the purpose of filling a cache miss by processors in a region comprising said requester processing node, and said second count indicates how many times said addressed memory page was accessed for the purpose of filling a cache miss by processors in a region comprising said local processing node.
Claim 22
Dependent Claim 112 words
A page migration controller to determine whether a memory page addressed by a memory access request should be migrated from a local processing node in which said memory page is stored to a requester processing node in which said memory access request originated, comprising: means for obtaining a first count associated with said addressed memory page and said requester processing node, and a second count associated with said addressed memory page and said local processing node; an incrementer to increment said first count; and migration signal issuing means for issuing a migration signal if a difference between said second count and said incremented first count is greater than a migration threshold value.
Claim 23
Dependent Claim 112 words
A page migration controller to determine whether a memory page addressed by a memory access request should be migrated from a local processing node in which said memory page is stored to a requester processing node in which said memory access request originated, comprising: means for obtaining a first count associated with said addressed memory page and said requester processing node, and a second count associated with said addressed memory page and said local processing node; an incrementer to increment said first count; and migration signal issuing means for issuing a migration signal if a difference between said second count and said incremented first count is greater than a migration threshold value.
Claim 24
Dependent Claim 71 words
The page migration controller of claim 19, wherein said migration signal issuing means comprises: a subtracter to subtract said second count from said incremented first count to obtain a difference between said second count and said incremented first count; a comparator to determine whether said difference is greater than said migration threshold value; and a controller to issue said migration signal if said difference is greater than said migration threshold value.
Claim 25
Dependent Claim 38 words
The page migration controller of claim 20, wherein said controller causes said addressed memory page to be migrated from said local processing node to said requester processing node if said difference is greater than said migration threshold value.
Claim 26
Dependent Claim 71 words
The page migration controller of claim 19, wherein said first count indicates how many times said addressed memory page was accessed for the purpose of filling a cache miss by processors in a region comprising said requester processing node, and said second count indicates how many times said addressed memory page was accessed for the purpose of filling a cache miss by processors in a region comprising said local processing node.
Claim 27
Independent Claim 103 words
A method of determining whether a memory page addressed by a memory access request should be migrated from a local processing node in which said memory page is stored to a requester processing node in which said memory access request originated, comprising the steps of: obtaining a first count associated with said addressed memory page and said requester processing node, and a second count associated with said addressed memory page and said local processing node; incrementing said first count; and issuing a migration signal if a difference between said second count and said incremented first count is greater than a migration threshold value.
Claim 28
Independent Claim 103 words
A method of determining whether a memory page addressed by a memory access request should be migrated from a local processing node in which said memory page is stored to a requester processing node in which said memory access request originated, comprising the steps of: obtaining a first count associated with said addressed memory page and said requester processing node, and a second count associated with said addressed memory page and said local processing node; incrementing said first count; and issuing a migration signal if a difference between said second count and said incremented first count is greater than a migration threshold value.
Claim 29
Dependent Claim 35 words
The method of claim 23, further comprising the step of: causing said addressed memory page to be migrated from said local processing node to said requester processing node in response to receiving said migration signal.
Claim 30
Dependent Claim 38 words
The method of claim 23, further comprising the step of: causing said addressed memory page to be migrated from said local processing node to said requester processing node if said difference is greater than said migration threshold value.
Claim 31
Dependent Claim 69 words
The method of claim 23, wherein said first count indicates how many times said addressed memory page was accessed for the purpose of filling a cache miss by processors in a region comprising said requester processing node, and said second count indicates how many times said addressed memory page was accessed for the purpose of filling a cache miss by processors in a region comprising said local processing node.
Claim 32
Independent Claim 167 words
A method of determining whether a memory page, stored in a local processing node and addressed by a memory access request, should be replicated to a requester processing node in which said memory access request originated, comprising the steps of: obtaining a count from an array in said local processing node, said count being associated with said addressed memory page and said requester processing node; incrementing said count; obtaining a mode from said array, said mode being associated with said addressed memory page and said requester processing node: issuing a replication signal if said incremented count is greater than a replication threshold value and said mode indicates that a replication operation is desired for said addressed memory page and said requester processing node; receiving said replication signal; and determining, after receiving said replication signal, whether said memory page should be replicated based on at least one additional threshold factor, including at least one of system load, migration history of said addressed memory page, and node bandwidth imbalance.
Claim 33
Independent Claim 167 words
A method of determining whether a memory page, stored in a local processing node and addressed by a memory access request, should be replicated to a requester processing node in which said memory access request originated, comprising the steps of: obtaining a count from an array in said local processing node, said count being associated with said addressed memory page and said requester processing node; incrementing said count; obtaining a mode from said array, said mode being associated with said addressed memory page and said requester processing node: issuing a replication signal if said incremented count is greater than a replication threshold value and said mode indicates that a replication operation is desired for said addressed memory page and said requester processing node; receiving said replication signal; and determining, after receiving said replication signal, whether said memory page should be replicated based on at least one additional threshold factor, including at least one of system load, migration history of said addressed memory page, and node bandwidth imbalance.
Claim 34
Dependent Claim 12 words
The apparatus of claim 1, wherein said incrementer statistically increments first count.

References Cited (Backward Citations)

US5269013A Cited
US5313631A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-03-09 2001-09-08 2002-03-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-03-09 2005-09-08 2006-03-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-03-09 2009-09-08 2010-03-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag