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

Optimizing data movement with hardware operations

Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 1997-06-24
•
Granted: 1999-10-12
•
Expires: 2017-06-24
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a computer system, an architecture for optimizing aspects of data movement operations by performing functions such as memory allocation and notification on hardware rather than software. The invention thereby optimizes several higher-level processor operations that involve data movement, including internodal messaging, data copying, and data zeroing. Method and apparatus is also disclosed for detecting and responding to translation lookaside buffer (TLB) purges indicating a change in physical memory mapping during translation of virtual memory to physical memory.

Inventors

  • 👤 Tony M. Brewer

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 02:35
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1027; G06F2212/00; G06F2212/68; G06F2212/682

Claims Analysis

Total Claims: 27
Claim 1
Independent Claim 66 words
A method for optimizing data movement in a computer system, comprising the steps of: (a) receiving a request from a device to perform a data movement operation; (b) allocating memory space to enable the operation; (c) moving the data; (d) upon completion of step (c), notifying the device that the operation is complete; and (e) performing selected ones of steps (b) and (d) as hardware operations.
Claim 2
Independent Claim 66 words
A method for optimizing data movement in a computer system, comprising the steps of: (a) receiving a request from a device to perform a data movement operation; (b) allocating memory space to enable the operation; (c) moving the data; (d) upon completion of step (c), notifying the device that the operation is complete; and (e) performing selected ones of steps (b) and (d) as hardware operations.
Claim 3
Dependent Claim 21 words
The method of claim 1, in which selected ones of steps (b), (c) and (d) are pipelined with other system operations.
Claim 4
Dependent Claim 12 words
The method of claim 1, in which the device is a processor.
Claim 5
Dependent Claim 61 words
The method of claim 3, in which said hardware comprises a processor agent operatively responsive to the processor, the processor agent including: a message/copy state machine; a set of input registers receiving data from the processor and supplying data to the message/copy state machine; and a status queue receiving data from the message/copy state machine and supplying data to the processor.
Claim 6
Dependent Claim 37 words
The method of claim 4, in which said hardware further comprises a memory access controller responsively operative to the processor agent, the memory access controller comprising: a message allocation state machine; and a message completion status queue.
Claim 7
Dependent Claim 26 words
The method of claim 5, in which the message/copy state machine exchanges transactions with the message allocation state machine and with the message completion status queue.
Claim 8
Dependent Claim 29 words
The method of claim 1, in which steps (a) through (e) optimize messaging of unrestricted line length between a pair of nodes in a fixed cache line length environment.
Claim 9
Dependent Claim 163 words
The method of claim 7, in which said optimizing of messaging includes a method comprising the steps of: (a) disposing a local processor to format a message desired to be sent to a remote processor; (b) writing to input command registers on a local processor agent to initiate a transfer of the message; (c) disposing a message/copy state machine on the local processor agent to send a transaction to a remote memory access controller, the transaction specifying a source address of the message in memory and the length of the message; (d) allocating receiving memory on a remote node; (e) notifying the message/copy state machine that step (d) is complete; (f) copying the message to said receiving memory in increments of cache line length quantities; (g) sending completion status information from the source processor to a remote status queue upon the completion of step (f); (h) upon the completion of step (g), interrupting the remote processor with information that the message is pending.
Claim 10
Dependent Claim 27 words
The method of claim 8, further comprising the step of interrupting, upon completion of step (g), the source processor with information that the message has been sent.
Claim 11
Dependent Claim 33 words
The method of claim 8, in which the cache line length is a length selected from the group consisting of (a) 16 bytes, (b) 32 bytes, (c) 64 bytes, and (d) 128 bytes.
Claim 12
Dependent Claim 37 words
The method of claim 1, in which changes in virtual-memory-to-physical-memory mapping during setup and execution of the data movement operation are detected by monitoring, as a hardware operation, an occurrence of a translation lookaside buffer (TLB) purge.
Claim 13
Dependent Claim 210 words
The method of claim 11, in which said monitoring for a TLB purge includes a method comprising the steps of: (a) setting a first flag upon initiation of the data movement operation; (b) periodically monitoring for TLB purges; (c) translating virtual address space to physical address space; (d) setting up one or more input registers on a data mover; (e) upon completion of steps (c) and (d), clearing the first flag and setting a second flag if a TLB purge has not been detected in step (b); (f) upon completion of steps (c) and (d), clearing the first flag and clearing a second flag if a TLB purge has been detected in step (b); (g) examining the second flag; (h) returning to step (a) if the second flag is clear; (i) commencing physical movement of data if the second flag is set; (j) upon initiation of step (i), continuing to periodically monitor for TLB purges; (k) enqueuing a first operation completion status if a TLB purge is not detected in step (j) before physical movement of data is complete; and (l) if a TLB purge is detected in step (j) before physical movement of data is complete, aborting the data movement operation and then enqueuing a second operation completion status.
Claim 14
Dependent Claim 19 words
The method of claim 12, in which the first operation completion status indicates completion of the data movement operation.
Claim 15
Dependent Claim 22 words
The method of claim 12, in which the second operation completion status identifies data that was successfully moved prior to the abort.
Claim 16
Dependent Claim 26 words
The method of claim 12, in which step (e) is performed if a TLB purge has not been detected before physical data movement is to commence.
Claim 17
Dependent Claim 25 words
The method of claim 12, in which step (f) is performed if a TLB purge has been detected before physical data movement is to commence.
Claim 18
Independent Claim 147 words
A method for optimizing data movement in a computer system, comprising the steps of: (a) receiving a request from a processor to perform a data movement operation; (b) allocating memory space to enable the operation; (c) moving the data; (d) upon completion of step (c), notifying the processor that the operation is complete; and (e) performing steps (b) and (d) as hardware operations, said hardware comprising a processor agent operatively responsive to the processor and a memory access controller responsively operative to the processor agent, wherein the processor agent includes: a message/copy state machine; a set of input registers receiving data from the processor and supplying data to the message/copy state machine; and a status queue receiving data from the message/copy state machine and supplying data to the processor; and wherein the memory access controller includes: a message allocation state machine; and a message completion status queue.
Claim 19
Independent Claim 147 words
A method for optimizing data movement in a computer system, comprising the steps of: (a) receiving a request from a processor to perform a data movement operation; (b) allocating memory space to enable the operation; (c) moving the data; (d) upon completion of step (c), notifying the processor that the operation is complete; and (e) performing steps (b) and (d) as hardware operations, said hardware comprising a processor agent operatively responsive to the processor and a memory access controller responsively operative to the processor agent, wherein the processor agent includes: a message/copy state machine; a set of input registers receiving data from the processor and supplying data to the message/copy state machine; and a status queue receiving data from the message/copy state machine and supplying data to the processor; and wherein the memory access controller includes: a message allocation state machine; and a message completion status queue.
Claim 20
Dependent Claim 115 words
An architecture configuration disposed to optimize data movement operations by enabling selected data movement operations with hardware rather than software, comprising: a processor agent, the processor agent including: first input registers receiving data from a first processor and second input registers receiving input from a second processor; a message/copy state machine receiving control information from the input registers; a data mover; means for pipelining discrete data movement operations; a first status queue receiving first control information from the message/copy state machine and dispensing said first control information to the first processor; and a second status queue receiving second control information from the message/copy state machine and dispensing said second control information to the second processor.
Claim 21
Dependent Claim 115 words
An architecture configuration disposed to optimize data movement operations by enabling selected data movement operations with hardware rather than software, comprising: a processor agent, the processor agent including: first input registers receiving data from a first processor and second input registers receiving input from a second processor; a message/copy state machine receiving control information from the input registers; a data mover; means for pipelining discrete data movement operations; a first status queue receiving first control information from the message/copy state machine and dispensing said first control information to the first processor; and a second status queue receiving second control information from the message/copy state machine and dispensing said second control information to the second processor.
Claim 22
Dependent Claim 65 words
The architecture configuration of claim 18, further comprising a memory access controller in communication with the processor agent, the memory access controller including: means for allocating memory; a message allocation state machine; and a message completion status queue; wherein the means for allocating memory, the message allocation state machine and the message completion status queue operate responsive to control information from the message/copy state machine.
Claim 23
Dependent Claim 23 words
The architecture configuration of claim 19, in which the memory access controller is in communication with the processor agent over a cross bar.
Claim 24
Dependent Claim 52 words
Hardware for optimizing data movement operations, comprising: means for receiving a request from a device to perform a data movement operation; means for allocating memory space to enable the operation; means for moving the data; and means, responsive to said means for moving, for notifying the device that the operation is complete.
Claim 25
Dependent Claim 52 words
Hardware for optimizing data movement operations, comprising: means for receiving a request from a device to perform a data movement operation; means for allocating memory space to enable the operation; means for moving the data; and means, responsive to said means for moving, for notifying the device that the operation is complete.
Claim 26
Dependent Claim 71 words
An improved method for optimizing data movement operations in which said method comprises the steps of (a) receiving a request from a device to perform a data movement operation; (b) allocating memory space to enable the operation; (c) moving the data; and (d) upon completion of step (c), notifying the device that the operation is complete, wherein the improvement comprises: performing selected ones of steps (b) and (d) as hardware operations.
Claim 27
Dependent Claim 71 words
An improved method for optimizing data movement operations in which said method comprises the steps of (a) receiving a request from a device to perform a data movement operation; (b) allocating memory space to enable the operation; (c) moving the data; and (d) upon completion of step (c), notifying the device that the operation is complete, wherein the improvement comprises: performing selected ones of steps (b) and (d) as hardware operations.

References Cited (Backward Citations)

US4432051A Cited
US4849881A Cited
US5276808A Cited
US5560003A Cited
US5502811A Cited
US5715430A Cited
US5581737A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-10-11 2003-04-12 2003-10-12 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-10-11 2007-04-12 2007-10-12 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-10-11 2011-04-12 2011-10-12 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag