Broadcast demap for deallocating memory pages in a multiprocessor system
First Claim
1. A method for removing an invalid page table entry from a plurality of translation lookaside buffers (TLBs) in a multiprocessor computer system having at least two processors coupled to a packet-switched bus, said invalid page table entry being specified by a virtual address and a process identification, said invalid page table entry being an invalid mapping between said virtual address and a physical address, said method comprising the steps of:
- broadcasting a demap request packet on said packet-switched bus by a first controller via a first bus watcher in response to a first processor of said at least two processors requesting that said invalid page table entry be removed from a first TLB controlled by said first controller, wherein said demap request packet comprises data specifying said virtual address and process identification of said invalid page table entry;
receiving said demap request packet on said packet-switched bus by a second controller via a second bus watcher;
sending a first demap reply packet on said packet-switched bus to said first controller via said first and second bus watchers by said second controller to indicate that said second controller has received said demap request packet;
checking by said second controller to determine whether a second TLB controlled by said second controller contains said invalid page table entry by comparing said virtual address and said process identification to entries contained in said second TLB;
completing pending operations for a second processor of said at least two processors, wherein said second TLB stores page table entries for use by said second processor;
removing said invalid page table entry from said second TLB by said second controller if said invalid page table entry is contained in said second TLB;
sending a second demap reply packet on said packet-switched bus to said first controller via said second and first bus watchers by said second controller after removal of said invalid page table entry from said second TLB to indicate that said second controller has processed said demap request packet.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for removing a page table entry from a plurality of translation lookaside buffers ("TLBs") in a multiprocessor computer system. The multiprocessor computer system includes at least two processors coupled to a packet-switched bus. Page table entries are removed from a plurality of TLBs in the multiprocessor computer system by first broadcasting a demap request packet on the packet-switched bus in response to one of the processors requesting that a page table entry be removed from its associated TLB. The demap request packet includes a virtual address and context information specifying this page table entry. Controllers reply to the demap request packet by sending a first reply packet to the controller that sent the original demap request packet to indicate receipt of the demap request packet. If a controller removes the page table entry from its associated TLB, that controller sends a second demap reply packet to indicate that the page table entry has been removed from its associated TLB.
-
Citations
11 Claims
-
1. A method for removing an invalid page table entry from a plurality of translation lookaside buffers (TLBs) in a multiprocessor computer system having at least two processors coupled to a packet-switched bus, said invalid page table entry being specified by a virtual address and a process identification, said invalid page table entry being an invalid mapping between said virtual address and a physical address, said method comprising the steps of:
-
broadcasting a demap request packet on said packet-switched bus by a first controller via a first bus watcher in response to a first processor of said at least two processors requesting that said invalid page table entry be removed from a first TLB controlled by said first controller, wherein said demap request packet comprises data specifying said virtual address and process identification of said invalid page table entry; receiving said demap request packet on said packet-switched bus by a second controller via a second bus watcher; sending a first demap reply packet on said packet-switched bus to said first controller via said first and second bus watchers by said second controller to indicate that said second controller has received said demap request packet; checking by said second controller to determine whether a second TLB controlled by said second controller contains said invalid page table entry by comparing said virtual address and said process identification to entries contained in said second TLB; completing pending operations for a second processor of said at least two processors, wherein said second TLB stores page table entries for use by said second processor; removing said invalid page table entry from said second TLB by said second controller if said invalid page table entry is contained in said second TLB; sending a second demap reply packet on said packet-switched bus to said first controller via said second and first bus watchers by said second controller after removal of said invalid page table entry from said second TLB to indicate that said second controller has processed said demap request packet. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus for removing an invalid page table entry from a plurality of translation lookaside buffers (TLBs) in a multiprocessor computer system having at least two processors coupled to a packet-switched bus, said invalid page table entry being specified by a virtual address and a process identification, said apparatus comprising:
-
a first controller, coupled to said packet switched bus and a first one of said at least two processors, said first controller for broadcasting a demap request packet on said packet-switched bus in response to said first one of said at least two processors requesting that said invalid page table entry be removed from a first TLB controlled by said first controller, wherein said demap request packet comprises data specifying said virtual address and process identification of said invalid page table entry; and a second controller coupled to said packet-switched bus and a second one of said at least two processors, said second controller for receiving said demap request packet on said packet-switched bus, for sending a first demap reply packet on said packet-switched bus to said first controller to indicate that said second controller has received said demap request packet, for determining whether a second TLB controlled by said second controller contains said invalid page table entry by comparing said virtual address and said process identification to entries contained in said second TLB, for removing said invalid page table entry from said second TLB if said invalid page table entry is contained in said second TLB, and for sending a second demap reply packet on said packet-switched bus to said first controller after removal of said invalid page table entry from said second TLB to indicate that said second controller has processed said demap request packet, said second controller allowing said second one of said at least two processors to complete pending operations before said second controller removes said invalid page table entry from said second TLB. - View Dependent Claims (8, 9, 10)
-
-
11. A method for removing a page table entry from a plurality of cache memories in a multiprocessor computer system having at least two processors coupled to a packet-switched bus, the method comprising the steps of:
-
broadcasting a demap request packet on the packet-switched bus by a first controller via a first bus watcher in response to a first one of the at least two processors requesting that the page table entry be removed from a first cache memory controlled by a first cache controller, the demap request packet including a virtual address and context information specifying the page table entry; receiving the demap request packet on the packet-switched bus by a second cache controller via a second bus watcher; sending a first demap reply packet on the packet-switched bus to the first cache controller via the first and second bus watchers by the second cache controller to indicate that the second cache controller has received the demap request packet; removing the page table entry from the second cache memory by the second cache controller if the page table entry is contained in the second cache memory; and sending a second demap reply packet on the packet-switched bus to the first cache controller via the second and first bus watchers by the second cache controller to indicate that the second cache controller has processed the demap request packet.
-
Specification