A computer system has physical pages of memory subject to access by input/output (“I/O”) devices, and a certain table with entries associating the physical pages with the I/O devices. Responsive to a request for data be moved from a first physical page to a second physical page, an entry is selected for the first physical page in the table. The selected entry indicates an association of the first physical page and one of the I/O devices. Arbitration is temporarily disabled for the selected I/O device so that I/O operations for the I/O device are temporarily disabled. Once arbitration is disabled for the device the data is moved from the first physical page to a second one of the physical pages and the entry is updated in the table to reflect a new association between the I/O device and the second physical page.
Drawings
Claims29
A method in a computer system having physical pages of memory subject to access by input/output (“I/O”) devices, the method comprising:
selecting, responsive to a request that data be moved from a first one of the physical pages to another one of the physical pages, an entry for the first physical page in a certain table, wherein the table has entries associating the physical pages with the I/O devices and the selected entry indicates an association of the first physical page and one of the I/O devices;
disabling arbitration for the selected I/O device, so that I/O operations for the I/O device are temporarily disabled;
moving the data from the first physical page to a second one of the physical pages and updating the entry in the table to reflect a new association between the I/O device and the second physical page;
and
re-enabling the arbitration, so that I/O operations with the I/O device are re-enabled.
2 more elements
A computer system comprising:
a system processor;
at least one memory having physical pages of data;
instructions stored in at least one of the memories, wherein the system processor is operable, responsive to the instructions, to request that data be moved from a first one of the physical pages to another one of the physical pages, and to select an entry for the first physical page in a certain table, the table having entries associating the physical pages with input/output (“I/O”) devices and the selected entry indicating an association of the first physical page and one of the I/O devices;
and
an I/O bridge, including logic for controlling I/O operations, wherein the physical pages of memory are subject to access, via the I/O bridge, by the I/O devices, and the logic in the I/O bridge is operable, responsive to notice from the processor of the selected entry, to disable arbitration for the selected I/O device, so that I/O operations for the I/O device are temporarily disabled, and is operable to re-enable the arbitration responsive to the data being moved from the first physical page to a second one of the physical pages and to notice from the system processor that the entry in the table has been updated to reflect a new association between the I/O device and the second physical page, so that I/O operations with the I/O device are re-enabled.
2 more elements
The system of claim 21, wherein the disabling of arbitration is selectively limited to solely disabling arbitration for the selected set of I/O devices.
A computer program product for use managing physical pages subject to access by input/output (“I/O”) devices, the computer program product comprising computer readable storage media having computer instructions for causing a computer system to perform:
requesting that data be moved from a first one of the physical pages to another one of the physical pages;
selecting, responsive to the request, an entry for the first physical page in a certain table, wherein the table has entries associating the physical pages with the I/O devices and the selected entry indicates an association of the first physical page and one of the I/O devices;
disabling arbitration in an I/O bridge of at least a bus segment associated with the selected I/O device, so that I/O operations for the I/O device are temporarily disabled;
moving the data from the first physical page to a second one of the physical pages and updating the entry in the table to reflect a new association between the I/O device and the second physical page;
and
re-enabling the arbitration, so that I/O operations with the I/O device are re-enabled.
#The invention concerns physical pages in a computer system, i.e., blocks of volatile memory such as dynamic random access memory (“DRAM”), that are subject to access by input/output (“I/O”) devices, and more particularly concerns migrating data among such pages.
#FIG. 1 illustrates a computer system, according to an embodiment of the present invention.
#FIG. 2 illustrates details of certain memory aspects of the system, and illustrates an example of migrating data from a first physical page in the system, according to an embodiment of the present invention.
#FIG. 3 illustrates further aspects of the example, in which the data is moved to a second physical page in the system and a certain table is updated, according to an embodiment of the present invention.
Detailed description2,427 words
#The claims at the end of this application set out novel features which applicants believe are characteristic of the invention. The invention, a preferred mode of use, further objectives and advantages, will best be understood by reference to the following detailed description of an illustrative embodiment read in conjunction with the accompanying drawings.
#Referring now to FIG. 1, a computer system 100 is shown, according to an embodiment. In the system 100, data 102, which includes instructions, is stored in nonvolatile memory, e.g., disk storage 135, and blocks 104 of the data 102 are written from the nonvolatile memory to the volatile memory 110. As concerns their actual physical location in the volatile memory, the blocks 104 of data 102 are referred to as “physical pages” 115 of data, to distinguish from references to the data 102 having the viewpoint of a virtual memory mapping, as will be explained further herein below. The volatile memory 110 is therefore also sometimes referred to as “physical memory.”
#With the blocks of data in volatile memory 110, they are accessible by I/O devices 135, 140, 145, etc. and a central processing unit (“CPU”) 120 of the system 100. As used herein, the term “I/O device” refers to any of a variety of devices which interface to the computer system 100 and provide information to the system or receive information from the system. Examples of I/O devices include a memory, such as nonvolatile disk storage 135, a mouse, a track ball, touch pad or the like, a keyboard, a display, a printer, a camera, a modem, an optical scanner, a microphone, an audio speaker, etc.