IP Library › Granted Patent US 8,285,969
Granted Patent B2
US 8,285,969 · App. 12/552,676 · Granted Oct 9, 2012

Reducing broadcasts in multiprocessors

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,285,969
App. No.
12/552,676
Granted
Oct 9, 2012
Kind
B2
Abstract

Disclosed is an apparatus to reduce broadcasts in multiprocessors including a plurality of processors; a plurality of memory caches associated with the processors; a plurality of translation lookaside buffers (TLBs) associated with the processors; and a physical memory shared with the processors memory caches and TLBs; wherein each TLB includes a plurality of entries for translation of a page of addresses from virtual memory to physical memory, each TLB entry having page characterization information indicating whether the page is private to one processor or shared with more than one processor. Also disclosed is a computer program product and method to reduce broadcasts in multiprocessors.

Claims (42)

1. An apparatus to reduce broadcasts in multiprocessors comprising:

a plurality of processors;

a plurality of memory caches associated with the processors;

a plurality of translation lookaside buffers (TLBs) associated with the processors; and

a physical memory shared with the processors, memory caches and TLBs;

wherein each TLB comprises a plurality of entries for translation of a page of addresses from virtual memory to physical memory, each TLB entry having a field indicating a virtual page number with each page being a block of contiguous virtual memory addresses and each entry having page characterization information indicating whether the page is private to one processor or shared with more than one processor, wherein the page characterization information comprises each TLB entry having a one bit field indicating whether the page is private or shared, and

wherein the page characterization information comprises each TLB entry having a field indicating the processor identification (ID) of the processor owning the page.

2. The apparatus of claim 1 wherein the processor ID field being log (N) bits where N is the number of processors in the apparatus.

3. The apparatus of claim 2 wherein each TLB entry further comprises a page sharing bits field indicating a processor requesting the page.

4. The apparatus of claim 1 wherein the physical memory further comprises a page table and the page characterization information of each entry in the TLBs is saved in the page table of the physical memory.

5. The apparatus of claim 2 wherein the physical memory further comprises a page table having page table entries and wherein the field indicating whether the page in the TLB entry is private or shared and the field indicating the processor identification (ID) of the processor owning the page in the TLB entry are saved in the page table entry of the physical memory.

6. The apparatus of claim 3 wherein the physical memory further comprises a page table having page table entries and wherein the field indicating whether the page in the TLB entry is private or shared, the field indicating the processor ID of the processor owning the page in the TLB entry and the page sharing bits field indicating the processor requesting the page in the TLB entry are saved in the page table of the physical memory.

7. An apparatus to reduce broadcasts in multiprocessors comprising:

a cluster comprising:

a plurality of processors;

a plurality of memory caches associated with the processors with there being at least one memory cache for each processor;

a plurality of translation lookaside buffers (TLBs) associated with the processors with there being at least one TLB for each processor; and

a physical memory shared with the processors, memory caches and TLBs;

wherein each TLB comprises a plurality of entries for translation of a page of addresses from virtual memory to physical memory, each TLB entry having a field indicating a virtual page number with each page being a block of contiguous virtual memory addresses and each entry having page characterization information indicating whether the page is private to one processor or shared with more than one processor, wherein

the page characterization information comprises each TLB entry having a one bit field indicating whether the page is private or shared, and

wherein the page characterization information comprises each TLB entry having a field indicating the processor identification ID of the processor owning the page.

8. The apparatus of claim 7 further comprising a plurality of clusters connected by a bus.

9. A method to reduce broadcasts in multiprocessors comprising a plurality of processors; a plurality of memory caches associated with the processors; a plurality of translation lookaside buffers (TLBs) associated with the processors and comprising a plurality of entries for translation of a page of addresses from virtual memory to physical memory, each TLB entry having a field indicating a virtual page number with each page being a block of contiguous virtual memory addresses; and a physical memory shared with the processors, memory caches and TLBs, the method comprising the steps of:

processing a memory request from a processor;

performing a lookup in at least one TLB for virtual to physical address translation;

reading page characterization information from a TLB entry indicating whether the page is private to one processor or shared with more than one processor, wherein the page characterization information comprises each TLB entry having a one bit field indicating whether the page is private or shared, and wherein the page characterization information comprises each TLB entry having a field indicating the processor identification (ID) of the processor owning the page; and

performing a snoop request only if the one bit field in the page characterization information indicates the page is shared with more than one processor.

10. The method of claim 9 wherein the processor ID field being log (N) bits where N is the number of processors in the apparatus.

11. The method of claim 10 wherein each TLB entry further comprises a page sharing bits field indicating a processor requesting the page.

12. The method of claim 9 wherein the physical memory further comprises a page table and further comprising the step of saving, in the page table of the physical memory, the page table characterization information of each entry in the TLBs.

13. The method of claim 10 wherein the physical memory further comprises a page table having page table entries and further comprising the step of saving, in the page table of the physical memory, the field indicating whether the page in the TLB entry is private or shared and the field indicating the processor identification (ID) of the processor owning the page in the TLB entry.

14. The method of claim 11 wherein the physical memory further comprises a page table having page table entries and further comprising the step of saving, in the page table of the physical memory, the field indicating whether the page in the TLB entry is private or shared, the field indicating the processor identification (ID) of the processor owning the page in the TLB entry and the page sharing bits field indicating the processor requesting the page in the TLB entry.

15. A computer program product for reducing broadcasts in multiprocessors comprising a plurality of processors; a plurality of memory caches associated with the processors; a plurality of translation lookaside buffers (TLBs) associated with the processors and comprising a plurality of entries for translation of a page of addresses from virtual memory to physical memory, each TLB entry having a field indicating a virtual page number with each page being a block of contiguous virtual memory addresses; and a physical memory shared with the processors, memory caches and TLBs and comprising:

a computer readable non-transitory storage medium having computer readable program code embodied therewith, the computer readable program code comprising:

computer readable program code configured to process a memory request from a processor;

computer readable program code configured to perform a lookup in at least one TLB for virtual to physical address translation;

computer readable program code configured to read page characterization information from a TLB entry indicating whether the page is private to one processor or shared with more than one processor, wherein the page characterization information comprises each TLB entry having a one bit field indicating whether the page is private or shared, and wherein the page characterization information comprises each TLB entry having a field indicating the processor identification (ID) of the processor owning the page; and

computer readable program code configured to perform a snoop request only if the one bit field in the page characterization information indicates the page is shared with more than one processor.

16. The computer program product of claim 15 wherein each TLB entry further comprises a page sharing bits field indicating a processor requesting the page.

17. The computer program product of claim 15 wherein the physical memory further comprises a page table and further comprising computer readable program code configured to save, in the page table of the physical memory, the page table characterization information of each entry in the TLBs.

18. The computer program product of claim 15 wherein the physical memory further comprises a page table having page table entries and further comprising computer readable program code configured to save, in the page table of the physical memory, the field indicating whether the page in the TLB entry is private or shared and the field indicating the processor identification (ID) of the processor owning the page in the TLB entry.

19. The computer program product of claim 16 wherein the physical memory further comprises a page table having page table entries and further comprising computer readable program code configured to save, in the page table of the physical memory, the field indicating whether the page in the TLB entry is private or shared, the field indicating the processor identification (ID) of the processor owning the page in the TLB entry and the page sharing bits field indicating the processor requesting the page in the TLB entry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2009
From: KHUBAIB, KHUBAIB; QURESHI, MOINUDDIN KHALIL AHMED; SRINIVASAN, VIJAYALAKSHMI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 023184/0286 →
Continuity (1)
Related Publication 20110055515A1 · Mar 3, 2011