Moving hardware context structures in memory while maintaining system operation
AssigneeInternational Business Machines Corporation
InventorsRonald Edward Fuhs, Ryan Scott Haraden, Bruce Marshall Walk
Life of this patent
Estimating the term…
Abstract
An adapter includes registers, a local context table, and logic that allows copying hardware context structures from a first location in memory to a second location in memory while the computer system continues to run. The local context table in the adapter is loaded with a desired block of context entries from the first location in memory. Values in the registers cause the adapter to write this desired block of context entries to the second location in memory in a way that does not inhibit the operation of the computer system.
Claims20
An apparatus comprising:
- at least one processor;
- a memory coupled to the at least one processor;
- a first block of the memory that contains hardware context information;
- a hardware adapter external to the memory and coupled to the at least one processor, the hardware adapter supporting a plurality of virtual connections that each have corresponding hardware context information stored in the first block of the memory, the hardware adapter reading the hardware context information for the plurality of virtual connections from the first block of the memory and writing the hardware context information for the plurality of virtual connections to a second block of the memory without shutting down the plurality of virtual connections.
An apparatus comprising:
- at least one processor;
- a memory coupled to the at least one processor;
- a first block of the memory that contains hardware context information;
- a hardware adapter external to the memory and coupled to the at least one processor, the hardware adapter supporting a plurality of virtual connections that each have corresponding hardware context information stored in the first block of the memory, the hardware adapter comprising:
- a first register;
- a second register;
- a dividing line selector register that contains a context entry number;
- and
- a local context table that contains a portion of the hardware context information in the first block of memory, wherein the local context table includes a pin bit for each context entry, wherein a setting of a pin bit causes the corresponding context entry to be retrieved from the memory into the local context table;
- wherein the hardware adapter keeps a context entry in the local context table as long as the corresponding pin bit is set, and wherein a clearing of a pin bit allows the hardware adapter to cast out the corresponding context entry to the memory, wherein the hardware adapter accesses a block of memory with a beginning address specified in the first register when a desired context entry has a context entry number greater than or equal to a value in the dividing line register, and accesses a block of memory with a beginning address specified in the second register when the desired context entry has a context entry number less than the value in the dividing line register, wherein the hardware adapter moves the hardware context information for the plurality of virtual connections in the first block of memory to the second block of memory without shutting down the plurality of virtual connections by performing the steps of:
- (A) writing the staffing address of a second block of the memory to the second register;
- (B) setting a pin bit in the local context table for a plurality of entries in the first block of memory;
- (C) reading the plurality of entries from the first block of memory into the local context table;
- (D) incrementing the dividing line selector by the number of the plurality of entries read in step (C);
- and
- (E) clearing the pin bit in each of the plurality of entries read in step (C), thereby causing each of the plurality of entries to be automatically written to the second block of memory when each of the plurality of entries is cast out of the local context table.
A program product comprising:
- (A) adapter logic for a hardware adapter external to a memory that supports a plurality of virtual connections that each have corresponding hardware context information stored in a first block of the memory, the adapter logic reading hardware context information for the plurality of virtual connections from the first block of memory and writing the hardware context information for the plurality of virtual connections to a second block of memory without shutting down the plurality of virtual connections;
- and
- (B) computer-readable recordable media bearing the adapter logic.
A program product comprising:
- (A) adapter logic for a hardware adapter supporting a plurality of virtual connections that each have corresponding hardware context information stored in a first block of memory, the adapter logic comprising:
- logic for using a local context table that contains a portion of the hardware context information in the first block of memory, wherein the local context table includes a pin bit for each context entry, wherein a setting of a pin bit causes a corresponding context entry to be retrieved from the first block of memory into the local context table;
- wherein the adapter logic keeps a context entry in the local context table as long as the corresponding pin bit is set, and wherein a clearing of a pin bit allows the adapter logic to cast out the corresponding context entry to the memory, wherein the adapter logic accesses a block of memory with a beginning address specified in a first register when a desired context entry has a context entry number greater than or equal to a value in a dividing line register, and accesses a block of memory with a beginning address specified in a second register when the desired context entry has a context entry number less than the value in the dividing line register, wherein the adapter logic moves the hardware context information for the plurality of virtual connections in the first block of memory to a second block of memory without shutting down the plurality of virtual connections by performing the steps of:
- (A1) writing the staffing address of the second block of memory to the second register;
- (A2) setting a pin bit in the local context table for a plurality of entries in the first block of memory;
- (A3) reading the plurality of entries from the first block of memory into the local context table;
- (A4) incrementing the dividing line selector register by the number of the plurality of entries read in step (A3);
- and
- (A5) clearing the pin bit in each of the plurality of entries read in step (A3), thereby causing each of the plurality of entries to be automatically written to the second block of memory when each of the plurality of entries is cast out of the local context table;
- and
- (B) computer-readable recordable media bearing the adapter logic.
Dependencies are inferred from the claim text.